Как применить itertools.product к элементам списка списков?

У меня есть список массивов, и я хотел бы получить декартово произведение элементов в массивах.

Я буду использовать пример, чтобы сделать это более конкретным ...

itertools.product, кажется, добивается цели, но я застрял в небольшой детали.

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

Если я сделаю

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

я получил

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

Но я хочу получить

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

Я пробовал несколько разных вещей:

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

Они все дали мнеcp0 вместоcp1.

Есть идеи?

Заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос