// output of ./demo/comb/perm-star-swaps-demo.cc:
// Description:
//% Permutations in star-transposition order (a Gray code).
//% Compute swaps only.
//% Algorithm by Gideon Ehrlich, as given by Knuth,
//%  TAOCP 4A/1, Algorithm E "Ehrlich swaps", p.337.
//% Cf. OEIS sequences A123400 and A159880.

arg 1: 4 == n  [Number of elements to permute]  default=4
   0:    [ . 1 2 3 ]     (0, 0)     [ . 1 2 3 ]
   1:    [ 1 . 2 3 ]     (0, 1)     [ 1 . 2 3 ]
   2:    [ 2 . 1 3 ]     (0, 2)     [ 1 2 . 3 ]
   3:    [ . 2 1 3 ]     (0, 1)     [ . 2 1 3 ]
   4:    [ 1 2 . 3 ]     (0, 2)     [ 2 . 1 3 ]
   5:    [ 2 1 . 3 ]     (0, 1)     [ 2 1 . 3 ]
   6:    [ 3 1 . 2 ]     (0, 3)     [ 2 1 3 . ]
   7:    [ . 1 3 2 ]     (0, 2)     [ . 1 3 2 ]
   8:    [ 1 . 3 2 ]     (0, 1)     [ 1 . 3 2 ]
   9:    [ 3 . 1 2 ]     (0, 2)     [ 1 2 3 . ]
  10:    [ . 3 1 2 ]     (0, 1)     [ . 2 3 1 ]
  11:    [ 1 3 . 2 ]     (0, 2)     [ 2 . 3 1 ]
  12:    [ 2 3 . 1 ]     (0, 3)     [ 2 3 . 1 ]
  13:    [ 3 2 . 1 ]     (0, 1)     [ 2 3 1 . ]
  14:    [ . 2 3 1 ]     (0, 2)     [ . 3 1 2 ]
  15:    [ 2 . 3 1 ]     (0, 1)     [ 1 3 . 2 ]
  16:    [ 3 . 2 1 ]     (0, 2)     [ 1 3 2 . ]
  17:    [ . 3 2 1 ]     (0, 1)     [ . 3 2 1 ]
  18:    [ 1 3 2 . ]     (0, 3)     [ 3 . 2 1 ]
  19:    [ 2 3 1 . ]     (0, 2)     [ 3 2 . 1 ]
  20:    [ 3 2 1 . ]     (0, 1)     [ 3 2 1 . ]
  21:    [ 1 2 3 . ]     (0, 2)     [ 3 . 1 2 ]
  22:    [ 2 1 3 . ]     (0, 1)     [ 3 1 . 2 ]
  23:    [ 3 1 2 . ]     (0, 2)     [ 3 1 2 . ]
 ct=24
