argh, you could use contribs/intarray with a gist index...
instead of N columns use an integer[] and gist-index it, then write the
equivalent of :
where (intersection of the search array with the data array) has at least
5 elements
(or 4 elements)
(or at least 4 elements order by the number of elements desc)
in your table defs, you can express your unicity constraint on the array
with :
CHECK( uniq(yourarrau) = yourarrau AND length(yourarrau)=6 )