Таким образом, в рекурсивном решении вы не используете цикл for, а вместо этого используете функциональную программную модель использования стека в качестве цикла
def recur_factorial(n):
total = 1
if n > 1:
total = n * recur_factorial(n - 1)
print(total)
return total
recur_factorial(5)
OUTPUT
1
2
6
24
120
Надеюсь, это даст вам лучшее представление, и если ваши требования изменятся, вы можете просто адаптировать эту модель для достижения того, что вам нужно.
ОБНОВЛЕНИЕ
Только что в своем комментарии вы сказали, что функция должна возвращать list
факториалов от 2 до n. поэтому ниже обновлен код для возврата списка.
def recur_factorial(n, factorials=[]):
if n == 1:
factorials.append(1)
else:
total = n * recur_factorial(n - 1)[-1]
factorials.append(total)
return factorials
factorials = recur_factorial(10)
print(factorials)
ВЫХОД
[2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]