Обычно в заданиях факториал требуют получить рекурсией
def factorial(n, acc=1):
if n == 0:
return acc
return factorial(n-1, n*acc)
print factorial(10)
###
n = 10
acc = 10 * 1
return 10
n = 9
acc = 10 * 9
return 90
n = 8
acc = 90 * 8
return 720
... и далее пока n не станет равен 0