// output of ./demo/comb/mset-perm-pref-demo.cc:
// Description:
//% All multiset permutations via prefix shifts ("cool-lex" order)
//% Same as: all strings with fixed content.

args: multiplicities of elements
multiplicities: ( 2, 2, 1 )  k=3  n=5
   1:  [ . 2 1 1 . ]  5    [ . 3 1 1 ]    [ . 1 1 3 ]
   2:  [ 2 . 1 1 . ]  2    [ 4 . 1 1 ]    [ 1 1 1 3 ]
   3:  [ 1 2 . 1 . ]  3    [ 2 3 . 1 ]    [ . 2 1 3 ]
   4:  [ . 1 2 1 . ]  3    [ . 1 2 1 ]    [ . . 1 3 ]
   5:  [ 1 . 2 1 . ]  2    [ 2 . 2 1 ]    [ 1 . 1 3 ]
   6:  [ 2 1 . 1 . ]  3    [ 4 2 . 1 ]    [ 1 2 1 3 ]
   7:  [ . 2 1 . 1 ]  5    [ . 3 1 . ]    [ . 1 2 1 ]
   8:  [ 2 . 1 . 1 ]  2    [ 4 . 1 . ]    [ 1 1 2 1 ]
   9:  [ . 2 . 1 1 ]  4    [ . 3 . . ]    [ . 1 1 1 ]
  10:  [ . . 2 1 1 ]  3    [ . . 2 . ]    [ . . 1 1 ]
  11:  [ 2 . . 1 1 ]  3    [ 4 . . . ]    [ 1 1 1 1 ]
  12:  [ 1 2 . . 1 ]  4    [ 2 3 . . ]    [ . 2 2 1 ]
  13:  [ . 1 2 . 1 ]  3    [ . 1 2 . ]    [ . . 2 1 ]
  14:  [ 1 . 2 . 1 ]  2    [ 2 . 2 . ]    [ 1 . 2 1 ]
  15:  [ . 1 . 2 1 ]  4    [ . 1 . 1 ]    [ . 1 . 1 ]
  16:  [ . . 1 2 1 ]  3    [ . . . 1 ]    [ . . . 1 ]
  17:  [ 1 . . 2 1 ]  3    [ 2 . . 1 ]    [ 1 1 . 1 ]
  18:  [ 2 1 . . 1 ]  4    [ 4 2 . . ]    [ 1 2 2 1 ]
  19:  [ 1 2 1 . . ]  5    [ 2 3 2 . ]    [ . 1 3 3 ]
  20:  [ 1 1 2 . . ]  3    [ 2 2 2 . ]    [ . . 3 3 ]
  21:  [ . 1 1 2 . ]  4    [ . 1 1 1 ]    [ . . . 3 ]
  22:  [ 1 . 1 2 . ]  2    [ 2 . 1 1 ]    [ 1 . . 3 ]
  23:  [ 1 1 . 2 . ]  3    [ 2 2 . 1 ]    [ . 2 . 3 ]
  24:  [ . 1 1 . 2 ]  5    [ . 1 1 . ]    [ . . 2 . ]
  25:  [ 1 . 1 . 2 ]  2    [ 2 . 1 . ]    [ 1 . 2 . ]
  26:  [ . 1 . 1 2 ]  4    [ . 1 . . ]    [ . 1 . . ]
  27:  [ . . 1 1 2 ]  3    [ . . . . ]    [ . . . . ]
  28:  [ 1 . . 1 2 ]  3    [ 2 . . . ]    [ 1 1 . . ]
  29:  [ 1 1 . . 2 ]  4    [ 2 2 . . ]    [ . 2 2 . ]
  30:  [ 2 1 1 . . ]  5    [ 4 2 2 . ]    [ 1 1 3 3 ]
ct=30
