I need all the possible 3x3 binary tensors, but I'd like to have this account for symmetries. I've started by using the Tuples command.
Tuples[{1, 0}, {3, 3}]
This tuples command produces 512 binary tensors. If I consider tensors that are symmetric by any permutation to be redundant, how can I remove the extraneous ones from the output? Here are a few examples of tensors that I'd like to consider as the same:
{{0, 1, 0}, {0, 1, 0}, {1, 1, 0}} // MatrixForm
{{1, 1, 0}, {0, 1, 0}, {0, 1, 0}} // MatrixForm
{{0, 1, 0}, {0, 1, 0}, {0, 1, 1}} // MatrixForm
{{0, 0, 1}, {1, 1, 1}, {0, 0, 0}} // MatrixForm
Additionally, I'd like to remove tensors that are equal if you replace the 1's with 0's, and vice versa, such that these two tensors are equivalent:
{{1, 0, 1}, {1, 0, 1}, {0, 1, 0}} // MatrixForm
{{0, 1, 0}, {0, 1, 0}, {1, 0, 1}} // MatrixForm
By my estimation, this should reduce the output from 512 to ~50 tensors.
Any help would be greatly appreciated.
Clarification of "permutations" for the original question:
I'm not sure the most accurate way to describe it. Imagine taking a 3x3 array of 1's and iteratively changing each 1 to a 0 until you have an array of 0's. I consider a duplicate being an array that is identical under any rotation or mirror around any row or diagonal.
For example, if you start with:
{{1, 1, 1}, {1, 1, 1}, {1, 1, 1}}
There are only three distinct 1's that can be removed:
{{0, 1, 1}, {1, 1, 1}, {1, 1, 1}}
{{1, 0, 1}, {1, 1, 1}, {1, 1, 1}}
{{1, 1, 1}, {1, 0, 1}, {1, 1, 1}}