Я попытался использовать itertools для вычисления всех комбинаций списка ['a', 'b', 'c']
с использованием combinations_with_replacement
с повторяющиеся элементы. Проблема в том, что индексы вроде бы используются для различения элементов:
Возвращает подпоследовательности элементов длины r из итерации ввода, позволяя повторять отдельные элементы более одного раза.
Комбинации выводятся в порядке лексикографической сортировки. Итак, если входной итерабельный объект отсортирован, комбинационные кортежи будут создаваться в отсортированном порядке.
Элементы считаются уникальными на основании их положения, а не их значения. Таким образом, если входные элементы уникальны, сгенерированные комбинации также будут уникальными.
Загрузите этот фрагмент кода:
import itertools
for item in itertools.combinations_with_replacement(['a','b','c'], 3):
print (item)
приводит к этому выводу:
('a', 'a', 'a')
('a', 'a', 'b')
('a', 'a', 'c')
('a', 'b', 'b')
('a', 'b', 'c')
('a', 'c', 'c')
('b', 'b', 'b')
('b', 'b', 'c')
('b', 'c', 'c')
('c', 'c', 'c')
И мне нужна комбинация, содержащая такие элементы, как: ('a', 'b', 'a')
, которые, похоже, отсутствуют. Как рассчитать полный набор комбинаций?