def move(n, a, b, c):
if n == 1:
print(a, '-->', c)
else :
#先将最底部的移动到正确位置
move(n-1, a, c, b)
move(1, a, b, c)
#再把其余的看成一个新的同样但规模更小的问题解决
#此时无论怎么操作最底部的已经移动到该有的位置,不会受到影响
move(n-1, b, a, c)
# 期待输出:
# A --> C
# A --> B
# C --> B
# A --> C
# B --> A
# B --> C
# A --> C
move(3, 'A', 'B', 'C')
YOUTH
A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C