我正在尋找採取任意數量的名單(例如[2,1,4 ...],[8,3,...],並從每個列表中挑選數字以生成所有的排列。例如:任意數量的嵌套循環?
[2,8,...], [2,3,...], [1,8,...], [1,3,...], [4,8,...], [4,3,...], ...
這很容易用嵌套for循環完成,但是因爲我想接受一個任意的列表的數量似乎for循環將不得不被硬編碼。每個列表一個。另外,由於我的程序可能會產生數以萬計的排列,我喜歡一次生成一個排列(而不是一次全部計算它們並將結果存儲到一個向量)。有沒有辦法完成這個編程?
由於在編譯時知道列表的數量,我想也許我可以使用基於模板的元編程。然而,這似乎笨拙,也不符合「一次一個」的要求。有什麼建議麼?
我相信,通常未知數量的for循環嵌套簡單的遞歸。 – UncleBens 2010-08-21 10:06:12