Mit itertools.permutations werden zusätzliche Elemente für dasselbe Element generiert. Wird verwendet, wenn dieselben Zahlen, dieselben Zeichen, dieselbe Reihenfolge usw. behandelt werden. Ich habe es früher in Verwendung des Generators eingeführt, aber ich habe es alleine eingeführt, weil es für mich schwierig war, es zu finden. github source: permutation.py
permutation.py
def permutations(iterable, permutation=[]):
if not iterable:
yield permutation
pass
for i in [iterable.index(i) for i in set(iterable)]:
yield from permutations(iterable[:i] + iterable[i+1:], permutation + [iterable[i]])
Ist die Ausbeute rekursiv? Außerdem gibt es den Ertrag aus der Ferne zurück. Ich stelle es jedes Mal ein, um zu verhindern, dass dasselbe Element dupliziert wird.
Es scheint etwas langsam zu sein, sich an Scheiben zu halten, also sag mir bitte, ob es einen guten Weg gibt.
Recommended Posts