I managed to solve this with the following code:
def reverse(text): rev =  for r in text: rev[0:0] += r print "".join(rev) return "".join(rev) reverse('Python!')
Allthough I have no idea how! I was experimenting with the idea of using list position to order the letters, and noticed by accident that eg rev[0:3] reversed half of the word. I wen't down all the way to [0:0] and noticed that whole of the word is reversed.
Does anyone understand why
rev[0:0] += r is working?