# -*- Mode: Python -*- def anagram (s): if len(s) == 1: return s else: result = [] for sub in anagram (s[1:]): for i in range (len (sub)+1): result.append (sub[i:] + s[0] + sub[:i]) return result def remove_dups (l): l.sort() l2 = [] x = None for y in l: if y != x: l2.append (y) x = y return l2 if __name__ == '__main__': import sys l = anagram (sys.argv[1]) l = remove_dups (l) for x in l: print x