// output of ./demo/comb/mset-perm-gray-demo.cc: // Description: //% All multiset permutations in minimal-change order (Fred Lunnon's Gray code). //% Same as: all strings with fixed content. args: multiplicities of elements multiplicities: ( 3, 2, 1 ) k=3 n=6 1: [ 1 1 1 2 2 3 ] 2: [ 2 1 1 1 2 3 ] (3, 0) 3: [ 1 2 1 1 2 3 ] (0, 1) 4: [ 1 1 2 1 2 3 ] (1, 2) 5: [ 1 1 2 2 1 3 ] (4, 3) 6: [ 2 1 1 2 1 3 ] (2, 0) 7: [ 1 2 1 2 1 3 ] (0, 1) 8: [ 1 2 2 1 1 3 ] (3, 2) 9: [ 2 1 2 1 1 3 ] (1, 0) 10: [ 2 2 1 1 1 3 ] (2, 1) 11: [ 2 2 3 1 1 1 ] (5, 2) 12: [ 2 2 1 3 1 1 ] (2, 3) 13: [ 2 1 2 3 1 1 ] (1, 2) 14: [ 1 2 2 3 1 1 ] (0, 1) 15: [ 1 2 2 1 3 1 ] (3, 4) 16: [ 2 1 2 1 3 1 ] (1, 0) 17: [ 2 2 1 1 3 1 ] (2, 1) 18: [ 2 1 1 2 3 1 ] (1, 3) 19: [ 1 2 1 2 3 1 ] (0, 1) 20: [ 1 1 2 2 3 1 ] (1, 2) 21: [ 1 1 3 2 2 1 ] (4, 2) 22: [ 3 1 1 2 2 1 ] (2, 0) 23: [ 1 3 1 2 2 1 ] (0, 1) 24: [ 1 3 2 1 2 1 ] (3, 2) 25: [ 3 1 2 1 2 1 ] (1, 0) 26: [ 3 2 1 1 2 1 ] (2, 1) 27: [ 3 2 2 1 1 1 ] (4, 2) 28: [ 3 2 1 2 1 1 ] (2, 3) 29: [ 3 1 2 2 1 1 ] (1, 2) 30: [ 1 3 2 2 1 1 ] (0, 1) 31: [ 1 3 2 1 1 2 ] (3, 5) 32: [ 3 1 2 1 1 2 ] (1, 0) 33: [ 3 2 1 1 1 2 ] (2, 1) 34: [ 3 1 1 2 1 2 ] (1, 3) 35: [ 1 3 1 2 1 2 ] (0, 1) 36: [ 1 1 3 2 1 2 ] (1, 2) 37: [ 1 1 3 1 2 2 ] (3, 4) 38: [ 3 1 1 1 2 2 ] (2, 0) 39: [ 1 3 1 1 2 2 ] (0, 1) 40: [ 1 1 1 3 2 2 ] (1, 3) 41: [ 1 1 1 2 3 2 ] (3, 4) 42: [ 2 1 1 1 3 2 ] (3, 0) 43: [ 1 2 1 1 3 2 ] (0, 1) 44: [ 1 1 2 1 3 2 ] (1, 2) 45: [ 1 1 2 3 1 2 ] (4, 3) 46: [ 2 1 1 3 1 2 ] (2, 0) 47: [ 1 2 1 3 1 2 ] (0, 1) 48: [ 1 2 3 1 1 2 ] (3, 2) 49: [ 2 1 3 1 1 2 ] (1, 0) 50: [ 2 3 1 1 1 2 ] (2, 1) 51: [ 2 3 2 1 1 1 ] (5, 2) 52: [ 2 3 1 2 1 1 ] (2, 3) 53: [ 2 1 3 2 1 1 ] (1, 2) 54: [ 1 2 3 2 1 1 ] (0, 1) 55: [ 1 2 3 1 2 1 ] (3, 4) 56: [ 2 1 3 1 2 1 ] (1, 0) 57: [ 2 3 1 1 2 1 ] (2, 1) 58: [ 2 1 1 3 2 1 ] (1, 3) 59: [ 1 2 1 3 2 1 ] (0, 1) 60: [ 1 1 2 3 2 1 ] (1, 2) ct=60