itertools.permutations generiert, wo seine Elemente basierend auf ihrer Position und nicht aufgrund ihres Werts als eindeutig behandelt werden. Grundsätzlich möchte ich solche Duplikate vermeiden:
>>> list(itertools.permutations([1, 1, 1]))
[(1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)]
Eine anschließende Filterung ist nicht möglich, da in meinem Fall die Anzahl der Permutationen zu groß ist.
Kennt jemand einen geeigneten Algorithmus dafür?
Vielen Dank!
BEARBEITEN:
Was ich grundsätzlich möchte, ist Folgendes:
x = itertools.product((0, 1, 'x'), repeat=X)
x = sorted(x, key=functools.partial(count_elements, elem='x'))
sorted
Dies ist nicht möglich, da eine Liste erstellt wird und die Ausgabe von itertools.product zu groß ist.
Entschuldigung, ich hätte das eigentliche Problem beschreiben sollen.