def factorial(n): if n == 1: return 1 else: # Works without else too... return n * factorial(n-1) # Alternative def factorial(n): if n == 1: return 1 return n * factorial(n-1) # Don't do it this way def bad_factorial(n): print(n) return n * bad_factorial(n-1) if n == 1: return 1