>>861
k:=Array.MaxIndex()
a:=[]
f(0)

f(i){
 global Array,a,k
 Loop,% Array[i].MaxIndex()
 {
  a.Push(Array[i][A_Index])
  if (i < k)
   f(i+1)
  else
   ここに来るごとに各組み合わせが取れる(配列a)
  a.Pop()
 }
}


適当に書いたが上手くいってるように見える
ほめられたやり方なのかどうかは知らない