input: Write a python function to find the most efficient path from start to end in a grid.
  assert find_path((4, 2), (9, 9)) == [(4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6), (9, 7), (9, 8), (9, 9)]
  assert find_path((0, 0), (2, 2)) == [(0, 0), (1, 0), (2, 0), (2, 1), (2, 2)]
  assert find_path((1, 1), (3, 3)) == [(1, 1), (2, 1), (3, 1), (3, 2), (3, 3)]
output: def find_path(start, end):
      path = []
      x1, y1 = start
      x2, y2 = end
      
      # Move horizontally towards the target x-coordinate
      while x1 != x2:
          path.append((x1, y1))
          if x1 < x2:
              x1 += 1
          else:
              x1 -= 1
      
      # Move vertically towards the target y-coordinate
      while y1 != y2:
          path.append((x1, y1))
          if y1 < y2:
              y1 += 1
          else:
              y1 -= 1
      
      # Add the final destination to the path
      path.append((x1, y1))
      
      return path