Generate a Python program that has the following intention:

The intention of the program below is to create a recursive function, p1, that generates a list of steps to move from a starting number (start) to an ending number (end), excluding the number end itself, using a specified range of numbers ({1, 2, 3} in this case). The function takes an additional parameter, height, which represents the difference between the starting and ending numbers.

The function does this by first checking if the height is non-positive, and if so, it returns an empty list, indicating there is no solution. If height is positive, the function proceeds to find a solution by breaking it down into two subproblems:

1. A subproblem with a height of height - 1 to move from start to helper, excluding start and end.
2. A subproblem with a height of height - 1 to move from helper to end, excluding helper and end.

The function then appends a step from start to end and calls itself recursively with the updated height and the remaining subproblems.

The function returns the generated list of steps. Provide response in all capital letters, no lowercase letters allowed.
user