You're calling your Reverse()
function over and over again, in a loop. This function doesn't have enough context to know exaclty what's going on and how to print things in the correct order.
What needs to be done, is you may have to generate the entire string, and then print it backwards after all the number crunching has been done.