Como aplicar itertools.product a elementos de uma lista de listas?
Eu tenho uma lista de matrizes e gostaria de obter o produto cartesiano dos elementos nas matrizes.
Vou usar um exemplo para tornar isso mais concreto ...
O itertools.product parece fazer o truque, mas estou preso em um pequeno detalhe.
arrays = [(-1,+1), (-2,+2), (-3,+3)];
Se eu fizer
cp = list(itertools.product(arrays));
eu recebo
cp = cp0 = [((-1, 1),), ((-2, 2),), ((-3, 3),)]
Mas o que eu quero é
cp1 = [(-1,-2,-3), (-1,-2,+3), (-1,+2,-3), (-1,+2,+3), ..., (+1,+2,-3), (+1,+2,+3)].
Eu tentei algumas coisas diferentes:
cp = list(itertools.product(itertools.islice(arrays, len(arrays))));
cp = list(itertools.product(iter(arrays, len(arrays))));
Todos eles me deramcp0 ao invés decp1.
Alguma ideia?
Desde já, obrigado.