Если вы хотите изменить свою логику, см. @Blhsing 'answer.
Более простой способ реализации факториала выглядит так:
def factorial(n):
if not n:
return 1
else:
return n * factorial(n-1)
Помните, что math.factorial
также существует. Это лучшее решение, от которого вам не требуется создавать функцию самостоятельно.