У меня есть такие массивы, и каждый узор обозначает комбинационную форму с каждым числом, представляющим размер комбинации.Найти комбинации с массивами и комбинацией шаблонов
- узор 0:
[1, 1, 1, 1]
- модель 1:
[2, 1, 1]
- модель 2:
[3, 1]
- модель 3:
[4]
- ...
У меня также есть символ-значный как показано ниже. len (chars) равно сумме значения верхнего массива.
chars = ['A', 'B', 'C', 'D']
Я хочу, чтобы найти все комбинации символов следуя заданному шаблону. Например, для шаблона 1, 4C2 * 2C1 * 1C1 - количество комбинаций.
[['A', 'B'], ['C'], ['D']]
[['A', 'B'], ['D'], ['C']]
[['A', 'C'], ['B'], ['D']]
[['A', 'C'], ['D'], ['B']]
[['A', 'D'], ['B'], ['C']]
[['A', 'D'], ['C'], ['B']]
...
Но я не знаю, как создавать такие комбинационные массивы. Конечно, я знаю, что есть много полезных функций для комбинаций в python. Но я не знаю, как их использовать для создания комбинационного сочетания комбинаций.
EDITED
Я так сожалею, мое объяснение сбивает с толку. Я показываю простой пример.
- узором 0:
[1, 1]
- модель 1:
[2]
chars = ['A', 'B']
Затем, результат должен быть, как показано ниже. Поэтому первое измерение должно быть перестановкой, но второе измерение должно быть комбинацией.
- pat0:
[['A'], ['B']]
- pat0:
[['B'], ['A']]
- pat1:
[['A', 'B']] # NOTE: [['B', 'A']] is same in my problem
Это то, что я хочу! Спасибо. – jef