Как получить 2D массив возможных комбинаций

У меня есть следующий 2D-массив:

String[M][]

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

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

Все возможные комбинации должны храниться в результирующем массиве.String[] combinations, Так, например:

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

Обратите внимание, что массивы имеют переменную длину. Порядок элементов в выходной строке не имеет значения. Мне также все равно, есть ли дубликаты.

Если бы массивы были одинаковой длины, вложенные циклы сделали бы свое дело, но это не так, и я действительно не знаю, как решить проблему.

Ответы на вопрос(5)

Ваш ответ на вопрос