How to solve the tower of Hanoi problem

In this shot, we’ll look at the tower of Hanoi problem and how to solve the problem in Python.

Introduction

Let’s start by discussing what the tower of Hanoi problem is. It is a mathematical problem that involves three vertical rods and n circular discs. In their original state, the discs are stacked in order on the first rod, with the largest at the bottom of the pile and the smallest at the top. The goal of the problem is to move the entire stack to the final rod with the order remaining constant. However, the solution has to abide by some constraints:

  1. We can move only one disc at a time.
  2. Only the disc at the top of the stack can be moved to the top of another stack.
  3. We can only place a smaller disc on a larger disc.

Let’s take a look at how three discs would be moved from the first to the last rod in the slides below.

1 of 8

Code

We can find the code of this given problem below:

def TowerOfHanoi(n, start_rod, end_rod, transition_rod):
## base case for only one disc remaining
if n==1:
print "Move disk 1 from rod",start_rod,"to rod",end_rod
return
## Recursive call for to move the top disc in a stack of 2
TowerOfHanoi(n-1, start_rod, transition_rod, end_rod)
print "Move disk",n,"from rod",start_rod,"to rod",end_rod
## Recursive call for to move the top disc in a stack of 3
TowerOfHanoi(n-1, transition_rod, end_rod, start_rod)
n = 3
TowerOfHanoi(n,'A','C','B')
New on Educative
Learn to Code
Learn any Language as a beginner
Develop a human edge in an AI powered world and learn to code with AI from our beginner friendly catalog
🏆 Leaderboard
Daily Coding Challenge
Solve a new coding challenge every day and climb the leaderboard

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved