itertools.permutations генерує, коли його елементи розглядаються як унікальні залежно від їхнього положення, а не від їх вартості. Тому в основному я хочу уникати таких дублікатів:
>>> list(itertools.permutations([1, 1, 1]))
[(1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)]
Потім фільтрація неможлива, оскільки в моєму випадку кількість перестановок занадто велика.
Хтось знає відповідний алгоритм для цього?
Дуже дякую!
РЕДАГУВАТИ:
В основному я хочу наступного:
x = itertools.product((0, 1, 'x'), repeat=X)
x = sorted(x, key=functools.partial(count_elements, elem='x'))
що неможливо, оскільки sorted
створює список, а результат itertools.product занадто великий.
Вибачте, я повинен був описати фактичну проблему.