Я прочитал this простое и изящное решение python для нахождения всех перестановок заданной строки. Он рекурсивный. Исходя из этого, я попытался реализовать итеративное решение в python.Итеративное решение для: - Поиск строковых перестановок
Ниже приведен мой код. Но он работает только для 3-х символьных строк: (Stuck пытается увидеть, как условие базового случая рекурсии и условие рекурсии переводится в итеративный (нерекурсивный). Любые указатели помогут получить итеративное решение, работающее (либо на основе этого алгоритма, либо любого другие)
def permutations_iter(word):
while True:
perms = []
result = []
char = word[0]
new_word = word[1:]
if len(new_word)==2:
perms = [new_word,''.join(reversed(new_word))]
for perm in perms:
#insert the character into every possible location
for i in range(len(perm)+1):
result.append(perm[:i] + char + perm[i:])
return result
if len(new_word)==2:
break;
#example code to call this iterative function
print permutations_iter("LSE")
Спасибо за ссылку, которая объяснила И для решения. – goldenmean
excellent.elegant – user2290820
безупречный и аккуратный! – deeshank