def hanoi(n, a='1', b='2', c='3'):    """    move n discs from a to c using b as middle    """    if n>0:                    hanoi(n-1, a, c, b)        print(a, '->', c)        hanoi(n-1, b, a, c)hanoi(3)파이썬인데 다른 언어 쓰는형들도 간단해서 딱보면 이해가 될거야. 한번 저 위의 코드 좀 읽어봐저게 하노이의 타워 움직이는건데 저 코드를 도저히 이해를 못하겠어. 일단 저걸 실행 시키면1 -> 31 -> 23 -> 21 -> 32 -> 12 -> 31 -> 3이렇게 되거든? 왜 이런질 이해를 못하겠어. function이 뭔지는 대충 아는데 전체적으로 각각의 코드가 어떤 일을 하는지 좀 가르쳐줘.그리고 코드가 실행될때 과정좀 가르쳐주고