Array := Object()
Array[0] := [1,2,3]
Array[1] := [10,20,30]
Array[2] := [100,200,300]

こんな感じの配列のそれぞれのキーの値を1つずつ取り出して
1,10,100、1,10200、1,10,300、1,20,100……
という全ての組み合わせが欲しい場合、どういう処理をすればいいですか?

上の例ではキー3つ、値3つずつしかありませんが、実際に処理したい内容は
配列のキーの数は1〜13、1つのキーに含まれる値は1〜25程度あります。