Понимание рекурсии в Python

Я действительно пытаюсь понять, как работает рекурсия, и понять рекурсивные алгоритмы. Например, приведенный ниже код возвращает 120, когда я ввожу 5, извините за мое невежество, и я просто не понимаю, почему?

def fact(n):
    if n == 0:
        return 1
    else:
        return n * fact(n-1)

answer = int (raw_input('Enter some number: '))

print fact(answer)

Ответы на вопрос(4)

Ваш ответ на вопрос