input: 
  def solveTowerOfHanoi(num_disks, start_rod = 'A', end_rod = 'C', aux_rod = 'B'):
      """Solve the Tower of Hanoi problem for a given number of disks. 
      The function should print the steps required to move the disks 
      from the start_rod to the end_rod using the aux_rod as a temporary holder.
      
      >>> solveTowerOfHanoi(2)
      Move disk 1 from rod A to rod B
      Move disk 2 from rod A to rod C
      Move disk 1 from rod B to rod C
      
      >>> solveTowerOfHanoi(3)
      Move disk 1 from rod A to rod C
      Move disk 2 from rod A to rod B
      Move disk 1 from rod C to rod B
      Move disk 3 from rod A to rod C
      Move disk 1 from rod B to rod A
      Move disk 2 from rod B to rod C
      Move disk 1 from rod A to rod C
      """
      if num_disks == 1: 
          print("Move disk 1 from rod", start_rod, "to rod", end_rod) 
          return
      solveTowerOfHanoi(num_disks - 1, start_rod, aux_rod, end_rod) 
      print("Move disk", num_disks, "from rod", start_rod, "to rod", end_rod) 
      solveTowerOfHanoi(num_disks - 1, aux_rod, end_rod, start_rod) 
  
  # Driver code 
  num_disks = 4
  solveTowerOfHanoi(num_disks)
  
output:     if num_disks == 1: 
          print("Move disk 1 from rod", start_rod, "to rod", end_rod) 
          return
      solveTowerOfHanoi(num_disks - 1, start_rod, aux_rod, end_rod) 
      print("Move disk", num_disks, "from rod", start_rod, "to rod", end_rod) 
      solveTowerOfHanoi(num_disks - 1, aux_rod, end_rod, start_rod)