At 02:49 PM 11/27/2006, John Fouhy wrote: >On 28/11/06, Carroll, Barry <[EMAIL PROTECTED]> wrote: > > I'm not sure these qualify as "simple", but they work. This was one of > > my very first projects in Python, so it may be more complicated than > > necessary. > >This is an alternative approach: >http://mail.python.org/pipermail/tutor/2005-May/038059.html
However, this is not what someone looking for an anagram algorithm would find useful, it seems to me. Barry Carroll offering does the job, if the last line is revised as shown below: def permute(word): """ By Barry Carrol <[EMAIL PROTECTED]> on Tutor list, revised (last line) by me. """ retList=[] if len(word) == 1: # There is only one possible permutation retList.append(word) else: # Return a list of all permutations using all characters for pos in range(len(word)): # Get the permutations of the rest of the word permuteList=permute(word[0:pos]+word[pos+1:len(word)]) # Now, tack the first char onto each word in the list # and add it to the output for item in permuteList: retList.append(word[pos]+item) #return retList return list(set(retList)) # make elements of retList unique (The line in the code in Barry's post, "permuteList=permute2(word[0:pos]+word[pos+1:len(word)])", was corrected to "permuteList=permute(word[0:pos]+word[pos+1:len(word)])" in an email from him to me.) (i.e., permute2 changed to permute) Dick Moores _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor