→ 16,8 с

ools.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 слишком велик.

Извините, я должен был описать актуальную проблему.

Ответы на вопрос(14)

Ваш ответ на вопрос