combinações entre duas listas?

Já faz um tempo e estou com dificuldade em envolver minha cabeça em torno de um algoritmo que tento fazer. Basicamente, eu tenho duas listas e quero obter todas as combinações das duas listas.

Eu posso não estar explicando corretamente, então aqui está um exemplo.

name = 'a', 'b'
number = 1, 2

a saída nesse caso seria:

1.  A1 B2
2.  B1 A2

A parte complicada é que eu posso ter mais itens na variável “nome” do que itens na variável “número” (o número será sempre igual ou menor que a variável nome).

Estou confuso sobre como fazer todas as combinações (aninhado para loop?) E ainda mais confuso sobre a lógica para mudar os itens na variável name no caso de haver mais itens no nome do que na lista de números.

Eu não sou o melhor programador, mas acho que posso dar uma chance se alguém puder me ajudar a esclarecer a lógica / algoriythm para conseguir isso. Então, acabei de ficar preso em loops aninhados.

Atualizar:

Aqui está a saída com 3 variáveis ​​e 2 números:

name = 'a', 'b', 'c'
number = 1, 2

saída:

1.  A1 B2
2.  B1 A2
3.  A1 C2
4.  C1 A2
5.  B1 C2
6.  C1 B2

questionAnswers(8)

yourAnswerToTheQuestion