repeticion permutaciones numeros numero listado generar conjunto con combinatoria combinar combinaciones algoritmo python arrays multidimensional-array combinations matrix

permutaciones - Generando combinaciones en python



permutaciones de un numero en python (3)

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

itertools.combinations (iterable, r)

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

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

Clase1 = [1,2,3,4] Clase2 = [1,2,3,4] Clase3 = [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 lo hay, pero no estoy seguro de cuál sería la forma más eficiente de hacerlo. ¿Tal vez una declaración de bucle "for in" que itera sobre cada elemento para cada clase? O ahora que estoy investigando esto, ¿las herramientas de iteración manejarían esto?

Gracias de antemano por cualquier ayuda ofrecida.


La forma más simple:

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


Lo que quiere se llama producto cartesiano :

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