The method prints an array that has to be an instance or class variable with the name values
.
The initial given index is not taken into account.
The method starts at the topmost index and calls itself with an index decremented by one.
When it reaches index 0, this is the start of the return-chain.
After returning from the recursion call, the value at the current index is printed - after the index itself.
One call is printed under the next.
The lines start at index 0 and stop at index i - 1 (the index used for the initial call).
Update: thanks to @Turing85 I fixed my own assumption of the printed indexes.