input: Write a function to implement the "Tower of Hanoi" algorithm for a problem with 4 disks. The function should print each move required to solve the problem. The function should take in the number of disks and the names of the start, end, and auxiliary rods. If there's only 1 disk, it should print the move directly to the end rod. For more disks, it should recursively move the n-1 disks to the auxiliary rod, then move the nth disk to the end rod, and finally move the n-1 disks from the auxiliary rod to the end rod.
  
  def solveTowerOfHanoi(num_disks, start_rod = 'A', end_rod = 'C', aux_rod = 'B'): 
      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: def solveTowerOfHanoi(num_disks, start_rod = 'A', end_rod = 'C', aux_rod = 'B'): 
      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)