Skip to content

Instantly share code, notes, and snippets.

@flaviodesousa
Created October 12, 2012 13:49
Show Gist options
  • Save flaviodesousa/3879281 to your computer and use it in GitHub Desktop.
Save flaviodesousa/3879281 to your computer and use it in GitHub Desktop.
My wife tried finding all permutations of my name's letters. Didn't believe when I said there were 6! ones...
#! /usr/bin/python
import sys
def permutate(used, free, built, found):
if free == {} and built not in found:
found[built] = 1
print built
return
for letter in free.keys():
newFree = free.copy()
del(newFree[letter])
newUsed = used.copy()
newUsed[letter] = 1
newBuilt = built + word[letter]
permutate(newUsed, newFree, newBuilt, found)
if sys.argv.count != 1: exit
word = sys.argv[1]
free = {}
for letter in range(0,len(word)):
free[letter] = 1
permutate({}, free, "", {})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment