Assume that I have a bunch of bitsets (strings on $\{0,1\}$) of the same length, e.g.:
101110001
001001101
010101010
101001001
101010101
I want to find the largest set of bits (indices, not necessarily consecutive) that takes all possible values in these bitsets. In the example above:
101|11|0001
001|00|1101
010|10|1010
101|00|1001
101|01|0101
the fourth and the fifth bits take all possible combinations 00
(2nd bitset), 01
(5th), 10
(3rd), 11
(1st), so they fit. Clearly, there is no set of bits of length $3$ that takes all possible values (in this case, we only have 5 bitsets, so it's impossible to get $2^3=8$ combinations), so bits $4$ and $5$ answer the question.
I have a lot of bitstrings ($3 \cdot 10^7$) and bits ($100$), and the answer has $\approx 10$ bits, so brute force is out of the question. Based on how the bitstrings are generated, there is a lot of permutational symmetry, so some simple prunings (e.g. if bit $i$ only takes value $1$ (and never takes value $0$), then we never consider any set of bits containing $i$) probably won't work. What can I do?
As an easier version, I'm also interested in the case when there are $3 \cdot 10^5$ bitstrings, $60$ bits, and the answer is $\approx 8$. For this, I'm currently running the bruteforce, and, assuming that the answer is $8$, I expect that computation to finish in a few days (I know that there is a set of size $8$, and I expect and need to show that there is no set of size $9$).