I'm sure this isn't very pythonic; comments and advice appreciated
def curious(text): """ Return the words in input text scrambled except for the first and last letter. """ new_text = "" word = "" for ch in text: if ch in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ": word = word + ch else: new_text = new_text + scramble(word) word = "" new_text = new_text + ch return new_text def scramble(word): """ scramble word """ from random import randint if len(word) < 4: return word new_word = word[0] ### transform "curious" into ['u', 'r', 'i', 'o', 'u'] letters = [] for ch in word: letters.append(ch) del letters[0:1] del letters[-1] ### why doesn't range(len(letters) - 1, 0, -1) work? for i in range(len(letters) - 1, -1, -1): j = randint(0, i) new_word = new_word + letters[j] del letters[j] return new_word + word[-1] print curious(curious.__doc__) -- If you're posting through Google read <http://cfaj.freeshell.org/google> -- http://mail.python.org/mailman/listinfo/python-list