I have a list of 6 (possibly repeated) integers:
ints = {a,b,c,d,e,f}; and also a set of symmetry conditions:
You can switch the signs of elements 1 and 4 at the same time: $$ \{a,b,c,d,e,f\} \equiv \{-a,b,c,-d,e,f\} $$
You can switch any of the pairs of elements (1, 4), (2, 5), (3, 6) with another one
$$ \{a,b,c,d,e,f\} \equiv \{a,c,b,d,f,e\} \equiv \{b,a,c,e,d,f\} \equiv \{b,c,a,e,f,d\} \equiv \{c,a,b,f,d,e\} \equiv \{c,b,a,f,e,d\} $$
- The first three elements and the last 3 elements can be switched $$ \{a,b,c,d,e,f\} \equiv \{d,e,f,a,b,c\} $$
I want to write a function F[{a,b,c,d,e,f}] which would produce all (unrepeated) sets which can be generated from the argument via repeated application of the symmetries.
For example:
F[{-1, -1, -1, -1, -1, -1}] = {{-1, -1, -1, -1, -1, -1}, {-1, -1, 1, -1, -1, 1}, {-1, 1, -1, -1, 1, -1}, {-1, 1, 1, -1, 1, 1}, {1, -1, -1, 1, -1, -1}, {1, -1, 1, 1, -1, 1}, {1, 1, -1, 1, 1, -1}, {1, 1, 1, 1, 1, 1}} and
F[{0, 0, 0, 0, 0, 0}] = {0, 0, 0, 0, 0, 0} and
F[{-1, -1, -1, -1, -1, 0}] = {{-1, -1, -1, -1, -1, 0}, {-1, -1, -1, -1, 0, -1}, {-1, -1, -1, 0, -1, -1}, {-1, -1, 0, -1, -1, -1}, {-1, -1, 0, -1, -1, 1}, {-1, -1, 1, -1, -1, 0}, {-1, -1, 1, -1, 0, 1}, {-1, -1, 1, 0, -1, 1}, {-1, 0, -1, -1, -1, -1}, {-1, 0, -1, -1, 1, -1}, {-1, 0, 1, -1, -1, 1}, {-1, 0, 1, -1, 1, 1}, {-1, 1, -1, -1, 0, -1}, {-1, 1, -1, -1, 1, 0}, {-1, 1, -1, 0, 1, -1}, {-1, 1, 0, -1, 1, -1}, {-1, 1, 0, -1, 1, 1}, {-1, 1, 1, -1, 0, 1}, {-1, 1, 1, -1, 1, 0}, {-1, 1, 1, 0, 1, 1}, {0, -1, -1, -1, -1, -1}, {0, -1, -1, 1, -1, -1}, {0, -1, 1, -1, -1, 1}, {0, -1, 1, 1, -1, 1}, {0, 1, -1, -1, 1, -1}, {0, 1, -1, 1, 1, -1}, {0, 1, 1, -1, 1, 1}, {0, 1, 1, 1, 1, 1}, {1, -1, -1, 0, -1, -1}, {1, -1, -1, 1, -1, 0}, {1, -1, -1, 1, 0, -1}, {1, -1, 0, 1, -1, -1}, {1, -1, 0, 1, -1, 1}, {1, -1, 1, 0, -1, 1}, {1, -1, 1, 1, -1, 0}, {1, -1, 1, 1, 0, 1}, {1, 0, -1, 1, -1, -1}, {1, 0, -1, 1, 1, -1}, {1, 0, 1, 1, -1, 1}, {1, 0, 1, 1, 1, 1}, {1, 1, -1, 0, 1, -1}, {1, 1, -1, 1, 0, -1}, {1, 1, -1, 1, 1, 0}, {1, 1, 0, 1, 1, -1}, {1, 1, 0, 1, 1, 1}, {1, 1, 1, 0, 1, 1}, {1, 1, 1, 1, 0, 1}, {1, 1, 1, 1, 1, 0}}