У меня есть N заказанных слотов. Каждый слот имеет значение внутри V возможных значений
N = 4 # number of objects (e.g. slots)
possible_values = ['A','B']
V = len(possible_values )
Как можно создать список всех возможных комбинаций в Python? Например, когда V = 2 и N = 4, я хотел бы получить следующий список из 2 ** 4 различных комбинаций:
combinations = [
[ 'A', 'A', 'A', 'A' ], # combination 0
[ 'A', 'A', 'A', 'B' ], # combination 1
[ 'A', 'A', 'B', 'A' ], # combination 2
[ 'A', 'A', 'B', 'B' ], # combination 3
[ 'A', 'B', 'A', 'A' ], # combination 4
[ 'A', 'B', 'A', 'B' ], # combination 5
[ 'A', 'B', 'B', 'A' ], # combination 6
[ 'A', 'B', 'B', 'B' ], # combination 7
[ 'B', 'A', 'A', 'A' ], # combination 8
[ 'B', 'A', 'A', 'B' ], # combination 9
[ 'B', 'A', 'B', 'A' ], # combination 10
[ 'B', 'A', 'B', 'B' ], # combination 11
[ 'B', 'B', 'A', 'A' ], # combination 12
[ 'B', 'B', 'A', 'B' ], # combination 13
[ 'B', 'B', 'B', 'A' ], # combination 14
[ 'B', 'B', 'B', 'B' ], # combination 15
]
Я бы хотел, чтобы код работал, когда N и V меняются. Например, когда N = 9 слотов и V = 4 возможных значений, я ожидаю список возможных комбинаций 4 ** 9 = 262144.
N = 4 # number of objects (e.g. slots)
possible_values = ['A','B']
result = itertools.product(possible_values, repeat=N)
print(list(result))
numpy
иarrays
, но вы используете списки списков. Какой ответ ты хочешь?help(itertools.product)