from itertools import permutations
kelime = "asd"
yeni = list(permutations(kelime,len(kelime)))#len(kelime) yerine farklı uzunluk girilebilir
for i in yeni: print "".join(i)
#Çıktı
#asd
#ads
#sad
#sda
#das
#dsa
Kendi algoritmanızı geliştirmek istemiyorsanız bu işinizi görecektir.