{ 1 2 3 4 } { 1 2 4 3 } { 1 3 2 4 } { 1 3 4 2 } { 1 4 2 3 } { 1 4 3 2 } { 2 1 3 4 } { 2 1 4 3 } { 2 3 1 4 } { 2 3 4 1 } { 2 4 1 3 } { 2 4 3 1 } { 3 1 2 4 } { 3 1 4 2 } { 3 2 1 4 } { 3 2 4 1 } { 3 4 1 2 } { 3 4 2 1 } { 4 1 2 3 } { 4 1 3 2 } { 4 2 1 3 } { 4 2 3 1 } { 4 3 1 2 } { 4 3 2 1 }
ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA CDAB CDBA DABC DACB DBAC DBCA DCAB DCBA
などを作りたいとき、C++ならば
next_permutationを使いましょう。
参考:順列の生成方法を教えてください。
追記:
配列{"A", "B", "C"}, {1, 2, 3}の2つの集合の各要素を
重複使用なしで組み合わせる(今回の例だと6パターン)場合などに
next_permutationは使える。(片方の配列要素を順列で並べる)