combinaciones entre dos listas?

Ha pasado un tiempo y estoy teniendo problemas para envolver mi cabeza con un algoritmo que intento hacer. Básicamente, tengo dos listas y quiero obtener todas las combinaciones de las dos listas.

Puede que no lo esté explicando correctamente, así que aquí hay un ejemplo.

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

La salida en este caso sería:

1.  A1 B2
2.  B1 A2

La parte difícil es que podría tener más elementos en la variable "nombre" que elementos en la variable "número" (el número siempre será igual o menor que la variable del nombre).

Estoy confundido sobre cómo hacer todas las combinaciones (¿anidado para un bucle?) E incluso más confundido en la lógica para cambiar los elementos en la variable de nombre en el caso de que haya más elementos en nombre que en la lista de números.

No soy el mejor programador, pero creo que puedo intentarlo si alguien puede ayudarme a aclarar la lógica / algoritmo para lograr esto. Así que acabo de estar atrapado en anidados para bucles.

Actualizar:

Aquí está la salida con 3 variables y 2 números:

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

salida:

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

Respuestas a la pregunta(8)

Su respuesta a la pregunta