Рекурсия в 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