Generando combinaciones en python

No estoy seguro de cómo hacer esto en Python, si es posible. Lo que debo hacer es crear una matriz (¿o una matriz o un vector?) A partir de 3 matrices separadas. Cada array como 4 elementos como tal, devuelven esto:

Clase 1 = [1,2,3,4] Clase 2 = [1,2,3,4] Clase 3 = [1,2,3,4]

Ahora lo que me gustaría hacer es devolver todas las combinaciones posibles de estas tres clases.

Ejemplo:

1 1 1
2 1 1
3 1 1
4 1 1
1 2 1
2 2 1
3 2 1
4 2 1 …

… y así sucesivamente a 64 filas (4 elementos * 16 combinaciones posibles para cada clase = 64 filas

Espero que haya una manera de hacer esto en Python. Estoy seguro de que existe, pero no estoy seguro de cuál sería la forma más eficiente de hacerlo. ¿Quizás una statement de bucle “for in” que itera sobre cada elemento para cada clase? O ahora que estoy investigando esto, ¿manejaría esto los instrumentos?

Gracias de antemano por cualquier ayuda ofrecida.

Lo que quieres se llama un producto cartesiano :

import itertools iterables = [ [1,2,3,4], [88,99], ['a','b'] ] for t in itertools.product(*iterables): print t 

La forma más sencilla:

 for i in Class1: for j in Class2: for k in Class3: print (i,j,k) 

Compruebe el módulo estándar de Python itertools :

itertools.combinaciones (iterable, r)

Devuelve r longitud de las subsecuencias de los elementos desde la entrada iterable.