// 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: ( 2, 2, 1 )  k=3  n=5
   1:  [ 1 1 2 2 3 ]
   2:  [ 2 1 1 2 3 ]  (2, 0)
   3:  [ 1 2 1 2 3 ]  (0, 1)
   4:  [ 1 2 2 1 3 ]  (3, 2)
   5:  [ 2 1 2 1 3 ]  (1, 0)
   6:  [ 2 2 1 1 3 ]  (2, 1)
   7:  [ 2 2 3 1 1 ]  (4, 2)
   8:  [ 2 2 1 3 1 ]  (2, 3)
   9:  [ 2 1 2 3 1 ]  (1, 2)
  10:  [ 1 2 2 3 1 ]  (0, 1)
  11:  [ 1 3 2 2 1 ]  (3, 1)
  12:  [ 3 1 2 2 1 ]  (1, 0)
  13:  [ 3 2 1 2 1 ]  (2, 1)
  14:  [ 3 2 2 1 1 ]  (3, 2)
  15:  [ 3 2 1 1 2 ]  (2, 4)
  16:  [ 3 1 2 1 2 ]  (1, 2)
  17:  [ 1 3 2 1 2 ]  (0, 1)
  18:  [ 1 3 1 2 2 ]  (2, 3)
  19:  [ 3 1 1 2 2 ]  (1, 0)
  20:  [ 1 1 3 2 2 ]  (0, 2)
  21:  [ 1 1 2 3 2 ]  (2, 3)
  22:  [ 2 1 1 3 2 ]  (2, 0)
  23:  [ 1 2 1 3 2 ]  (0, 1)
  24:  [ 1 2 3 1 2 ]  (3, 2)
  25:  [ 2 1 3 1 2 ]  (1, 0)
  26:  [ 2 3 1 1 2 ]  (2, 1)
  27:  [ 2 3 2 1 1 ]  (4, 2)
  28:  [ 2 3 1 2 1 ]  (2, 3)
  29:  [ 2 1 3 2 1 ]  (1, 2)
  30:  [ 1 2 3 2 1 ]  (0, 1)
 ct=30
