Как получить все сопоставления между двумя списками?

У нас есть два списка, A и B:

A = ['a','b','c']
B = [1, 2]

Есть ли питонный способ построить множество всех карт между A и B, содержащих 2 ^ n (здесь 2 ^ 3 = 8)? То есть:

[(a,1), (b,1), (c,1)]
[(a,1), (b,1), (c,2)]
[(a,1), (b,2), (c,1)]
[(a,1), (b,2), (c,2)]
[(a,2), (b,1), (c,1)]
[(a,2), (b,1), (c,2)]
[(a,2), (b,2), (c,1)]
[(a,2), (b,2), (c,2)]

С помощьюitertools.productможно получить все кортежи:

import itertools as it
P = it.product(A, B)
[p for p in P]

Который дает:

Out[3]: [('a', 1), ('a', 2), ('b', 1), ('b', 2), ('c', 1), ('c', 2)]

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

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