You don't need recursion and a loop. Either use recursion (not recommended, but as a demonstration):
# multiply([2,3,4]) == 2 * multiply([3,4])
# == 2 * (3 * multiply([4]))
# == 2 * (3 * (4 * multiply([])))
# == 2 * (3 * (4 * 1))
# == 2 * (3 * 4)
# == 2 * 12
# == 24
def multiply(lst):
if not lst:
return 1
else:
return lst[0] * multiply(lst[1:])
or a loop:
# multiply([2, 3, 4])
# product = 1
# product *= 2 (== 2)
# product *= 3 (== 6)
# product *= 4 (== 24)
def multiply(lst):
product = 1
for x in lst:
product *= x
return product