possibles=Flatten[Table[{{a,b},{c,d}},{a,{0,1}},{b,{0,1}},{c,{0,1}},{d,{0,1}}],3];ww=Subsets[Partition[possibles,4][[1]],{2}];wb=Subsets[Partition[possibles,4][[2]],{2}];bw=Subsets[Partition[possibles,4][[3]],{2}];bb=Subsets[Partition[possibles,4][[4]],{2}];mListRules=Flatten[Table[Join[q,x,y,z],{q,ww},{x,wb},{y,bw},{z,bb}],3];mRules=Table[Association[{0,0}->{n[[1]][[2]],n[[2]][[2]]},{0,1}->{n[[3]][[2]],n[[4]][[2]]},{1,0}->{n[[5]][[2]],n[[6]][[2]]},{1,1}->{n[[7]][[2]],n[[8]][[2]]}],{n,mListRules}];