総当りのアルゴリズム

(0,0)(0,1)(1,1)は出現するが(1,0)は出現しない組み合わせを作るアルゴリズムは難しそうだが意外に簡単に出来る

for i in 0..2
  for j in 0..i
    for k in 0..j
      for m in 0..k
        p [i,j,k,m]
      end
    end
  end
end


出力結果

[0, 0, 0, 0]
[1, 0, 0, 0]
[1, 1, 0, 0]
[1, 1, 1, 0]
[1, 1, 1, 1]
[2, 0, 0, 0]
[2, 1, 0, 0]
[2, 1, 1, 0]
[2, 1, 1, 1]
[2, 2, 0, 0]
[2, 2, 1, 0]
[2, 2, 1, 1]
[2, 2, 2, 0]
[2, 2, 2, 1]
[2, 2, 2, 2]