Comment obtenir le tableau 2D de combinaisons possibles

J'ai le texte suivant tableau 2D:

String[M][]

String[0]
   "1","2","3"

String[1]
   "A", "B"
   .
   .
   .
String[M-1]
   "!"

Toutes les combinaisons possibles doit être stocké dans un tableau résultant
String[] combinations. Ainsi, par exemple:

combinations[0] == {"1A....!")
combinations[1] == {"2A....!") 
combinations[2] == {"3A....!") 
combinations[3] == {"1B....!")

Avis que les tableaux sont de longueur variable. L'ordre des éléments dans la Chaîne de sortie n'a pas d'importance. Aussi, je ne m'inquiète pas si il y a des doublons.

Si les tableaux ont la même longueur, boucles imbriquées ferait l'affaire, mais ils ne le sont pas, et je ne sais vraiment pas comment aborder le problème.

OriginalL'auteur lekroif | 2013-04-07