I have four blocks, the first block of length two, the second of length three, the third of length four and the fourth of length five, and I can arrange them in the following way: 
I am allowed to move all the blocks sideways as long as there is no block left hanging, i.e.
This is allowed, but this:
is not.
Now imagine you are an ant climbing up these blocks and you know how to count. What I am asked is to count how many units I can walk straight before changing direction. When I change direction, I start to count again. Now, I can arrange the numbers I counted into an ordered list. For example, in image one, the list would be ${1,1,1,1,1,1,1,2,4}$, because I climb one unit up, then turn to walk one unit right, then climb one up, walk one right, etc.
In image two, the list would be ${1,1,1,1,2,2,1,1,3}$.
Now, the instructions say to come up with a set of rules that I can apply to these lists so that every list I make generates a new arrangement of blocks that is congruent with their lengths and heights, without removing blocks or leaving them hanging. I have been able to come up with a few rules, like:
The sum of all the numbers in the list should always equal the perimeter. There should always be the same number of steps (elements in the list) for the same arrangement of blocks.
The sum of all the odd elements should always equal twice the height. However, following these rules, I can still generate pyramids that are not congruent with the blocks, so I guess I am still missing a few.
What are the other rules? Or which rules are the clearest, simplest, and most general? Thanks in advance.