Jungs. Es scheint, als ob ich das Konzept der Python-Generatorfunktionen nicht wirklich verstehe, weil ich in diesem Code keinen Fehler gefunden habe, der alle Permutationen der String-Zeichen erzeugen soll.Naive Permutation Algorithmus, dass Python-Generator-Funktion nicht unterstützt
Zum Beispiel ist dies ein basiert auf einfachen Satz Expansion und es funktioniert
def permutations(seq):
perm_set = set()
def perm(cur_item_set, cur_str=''):
if not cur_item_set:
perm_set.add(cur_str)
else:
for item in cur_item_set:
perm(cur_item_set - set(item), cur_str + item)
perm(set(seq))
for (i, item) in enumerate(perm_set):
print(i + 1, item)
permutations('abcdef')
Inzwischen ist dieser Code nicht funktioniert: list(g)
bietet []
def gen_perm(cur_item_set, cur_str=''):
if not cur_item_set:
yield cur_str
else:
for item in cur_item_set:
gen_perm(cur_item_set - {item}, cur_str + item)
g = gen_perm(set('abcd'))
Verwenden Sie Python3.3 oder höher? –