recursion: permutations of a string