input: Write a python function to solve the Tower of Hanoi problem.
  assert moveTower(1, "A", "B", "C") == "Moving disk from A to B"
  assert moveTower(2, "A", "B", "C") == "Moving disk from A to C\nMoving disk from A to B\nMoving disk from C to B"
  assert moveTower(3, "A", "B", "C") == "Moving disk from A to B\nMoving disk from A to C\nMoving disk from B to C\nMoving disk from A to B\nMoving disk from C to A\nMoving disk from C to B\nMoving disk from A to B"
output: def moveTower(n, source, target, auxiliary):
      moves = []
  
      def hanoi(n, source, target, auxiliary):
          if n == 1:
              moves.append(f"Moving disk from {source} to {target}")
          else:
              hanoi(n-1, source, auxiliary, target)
              moves.append(f"Moving disk from {source} to {target}")
              hanoi(n-1, auxiliary, target, source)
  
      hanoi(n, source, target, auxiliary)
      return "\n".join(moves)