// output of ./demo/comb/mset-perm-gray-demo.cc: // Description: //% All multiset permutations in minimal-change order (Lunnon's Gray code). //% Same as: all strings with fixed content. args: multiplicities of elements multiplicities: ( 2, 2, 1 ) k=3 n=5 1: [ 1 1 2 2 3 ] 2: [ 2 1 1 2 3 ] (2, 0) [ 2 . . . ] [ 1 1 . . ] 3: [ 1 2 1 2 3 ] (0, 1) [ . 1 . . ] [ . 1 . . ] 4: [ 1 2 2 1 3 ] (3, 2) [ . 1 1 . ] [ . . 2 . ] 5: [ 2 1 2 1 3 ] (1, 0) [ 2 . 1 . ] [ 1 . 2 . ] 6: [ 2 2 1 1 3 ] (2, 1) [ 2 2 . . ] [ . 2 2 . ] 7: [ 2 2 3 1 1 ] (4, 2) [ 2 2 2 . ] [ . . 3 3 ] 8: [ 2 2 1 3 1 ] (2, 3) [ 2 2 . 1 ] [ . 2 . 3 ] 9: [ 2 1 2 3 1 ] (1, 2) [ 2 . 1 1 ] [ 1 . . 3 ] 10: [ 1 2 2 3 1 ] (0, 1) [ . 1 1 1 ] [ . . . 3 ] 11: [ 1 3 2 2 1 ] (3, 1) [ . 3 1 1 ] [ . 1 1 3 ] 12: [ 3 1 2 2 1 ] (1, 0) [ 4 . 1 1 ] [ 1 1 1 3 ] 13: [ 3 2 1 2 1 ] (2, 1) [ 4 2 . 1 ] [ 1 2 1 3 ] 14: [ 3 2 2 1 1 ] (3, 2) [ 4 2 2 . ] [ 1 1 3 3 ] 15: [ 3 2 1 1 2 ] (2, 4) [ 4 2 . . ] [ 1 2 2 1 ] 16: [ 3 1 2 1 2 ] (1, 2) [ 4 . 1 . ] [ 1 1 2 1 ] 17: [ 1 3 2 1 2 ] (0, 1) [ . 3 1 . ] [ . 1 2 1 ] 18: [ 1 3 1 2 2 ] (2, 3) [ . 3 . . ] [ . 1 1 1 ] 19: [ 3 1 1 2 2 ] (1, 0) [ 4 . . . ] [ 1 1 1 1 ] 20: [ 1 1 3 2 2 ] (0, 2) [ . . 2 . ] [ . . 1 1 ] 21: [ 1 1 2 3 2 ] (2, 3) [ . . . 1 ] [ . . . 1 ] 22: [ 2 1 1 3 2 ] (2, 0) [ 2 . . 1 ] [ 1 1 . 1 ] 23: [ 1 2 1 3 2 ] (0, 1) [ . 1 . 1 ] [ . 1 . 1 ] 24: [ 1 2 3 1 2 ] (3, 2) [ . 1 2 . ] [ . . 2 1 ] 25: [ 2 1 3 1 2 ] (1, 0) [ 2 . 2 . ] [ 1 . 2 1 ] 26: [ 2 3 1 1 2 ] (2, 1) [ 2 3 . . ] [ . 2 2 1 ] 27: [ 2 3 2 1 1 ] (4, 2) [ 2 3 2 . ] [ . 1 3 3 ] 28: [ 2 3 1 2 1 ] (2, 3) [ 2 3 . 1 ] [ . 2 1 3 ] 29: [ 2 1 3 2 1 ] (1, 2) [ 2 . 2 1 ] [ 1 . 1 3 ] 30: [ 1 2 3 2 1 ] (0, 1) [ . 1 2 1 ] [ . . 1 3 ] ct=30