¿Cómo aplicar itertools.product a elementos de una lista de listas?

Tengo una lista de matrices y me gustaría obtener el producto cartesiano de los elementos en las matrices.

Usaré un ejemplo para hacer esto más concreto ...

itertools.product parece hacer el truco, pero estoy atascado en un pequeño detalle.

arrays = [(-1,+1), (-2,+2), (-3,+3)];

Si lo hago

cp = list(itertools.product(arrays));

yo obtengo

cp = cp0 = [((-1, 1),), ((-2, 2),), ((-3, 3),)]

Pero lo que quiero conseguir es

cp1 = [(-1,-2,-3), (-1,-2,+3), (-1,+2,-3), (-1,+2,+3), ..., (+1,+2,-3), (+1,+2,+3)].

He intentado algunas cosas diferentes:

cp = list(itertools.product(itertools.islice(arrays, len(arrays))));
cp = list(itertools.product(iter(arrays, len(arrays))));

Todos me dieroncp0 en lugar decp1.

¿Algunas ideas?

Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta