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

Reply via email to