Solution #1:
The key idea is to transform a list of the base n digits to an integer.
The advantage of the solution is fast.
In:
Solution #2
The key idea is to transform a list of number/symbol to a string.
In:
ListUnion[xss_] := Module[{base, ZERO, yss},
rotateLeftList[xs_] :=
NestList[RotateLeft, xs, Length[xs]] // Map[ToString];
rotateList[xs_] := {xs, Reverse[xs]} // Map[rotateLeftList] //
Catenate;
xss // Map[First@*Sort@*rotateList] // Union // ToExpression
]
RandomSeed[3];
(*original list *)
xss = {{1, 1, 2, 1, 1, 2}, {1, 2, 1, 1, 2, 1}, {1,
2, 2, 1, 2, 2}, {1, 2, 2, 2, 1, 3}, {1, 2, 3, 1, 2, 3}, {1, 3, 1,
2, 2, 2}, {1, 3, 2, 1, 3, 2}, {2, 2, 1, 2, 2, 1}, {2, 2, 1, 3, 1,
2}, {2, 2, 2, 1, 3, 1}, {2, 3, 1, 2, 3, 1}}
ListUnion[xss]
(* number list *)
xss = RandomInteger[{-1, 0}, {10, 6}]
ListUnion[xss]
(* symbol list *)
xss = RandomChoice[{a, b}, {10, 6}]
ListUnion[xss]