Estoy buscando tomar un número arbitrario de listas (ej. [2, 1, 4 ...), [8, 3, ...], ...) y elegir números de cada lista para generar todas las permutaciones. Ej:Número arbitrario de bucles anidados?
[2, 8, ...], [2, 3, ...], [1, 8, ...], [1, 3, ...], [4, 8, ...], [4, 3, ...], ...
Esto se logra fácilmente usando bucles foráneos anidados, pero como me gustaría aceptarlo de forma arbitraria número de listas parece que los for-loops tendrían que estar codificados. Uno para cada lista Además, como mi programa probablemente generará muchas decenas de miles de permutaciones, me gustaría generar una sola permutación a la vez (en lugar de calcularlas todas de una vez y almacenar el resultado en un vector). ¿Hay alguna manera de lograr esto programáticamente?
Dado que el número de listas es conocido en tiempo de compilación, pensé que tal vez podría usar meta-programación basada en plantilla. Sin embargo, eso parece torpe y tampoco cumple con el requisito de "uno a la vez". ¿Alguna sugerencia?
Creo que, en general, un número desconocido de bucles for se anidan con recursión simple. – UncleBens