Рекурсия в Python3

Здравствуйте!) Помогите разобраться с рекурсией в данном примере на Python 3! Ни как не могу понять, как исполняется рекурсия в данном примере, можете подробнее расписать. Спасибо)
Как работает рекурсия в лёгких примерах, я понимаю, а тут сложновато разобраться в алгоритме (полностью понять), не смотря на простоту.
def hanoi(n,a,b,c):
if n !=0:
hanoi(n-1, a,c,b)
print("Transfer a ring from",a,"to",c)
hanoi(n-1,b,a,c)
hanoi(8,"a","b","c")
hanoi(3,"a","b","c")
(с тремя кольцами, дабы проще было разобраться, на 8 колец объяснение сложнее писать, чем на 3, поэтому можете написать с учётом 3х колец):)
P.S Пример является решением задачи "Ханойская башня"
20 ноября 2016 в 20:32
Ближайшие курсы
Онлайн интенсив "Основы управления продуктом"
Онлайн интенсив "Основы управления продуктом"
27
февраля
Интенсив Инструменты управления проектами
Интенсив Инструменты управления проектами
27
февраля
Как стать фрилансером?
Онлайн-курс
27
февраля
Новые статьи

Как защитить Windows: системный подход
11500

«После Scratch поняла, что не хочу бросать программирование»
50300

Что такое MVP и зачем его делать
43200