Edit2 We can use @SHuisman condition checker
list = {{4, 4, 4, 4}, {-4, 4, 4, 4}, {4, -4, 4, 4}, {4, 4, -4, 4}, {4,
4, 4, -4}, {-4, -4, 4, 4}, {-4, -4, -4, 4}, {-4, -4, -4, -4}};
mat = Transpose /@ Permutations[list, {4}];
result = Select[mat,
Det@# != 0 && AllTrue[#, MemberQ[4]] &&
AllTrue[Plus @@@ Subsets[#, {2}], MemberQ[8]] &&
AllTrue[Subtract @@@ Subsets[#, {2}], MemberQ[8]] &];
Length@result
96
Edit:
list = {{4, 4, 4, 4}, {-4, 4, 4, 4}, {4, -4, 4, 4}, {4, 4, -4, 4}, {4,
4, 4, -4}, {-4, -4, 4, 4}, {-4, -4, -4,
4}, {-4, -4, -4, -4}} /. {4 -> 1, -4 -> -1};
det = Select[mat, Det@# != 0 &];
cond2 = Map[MemberQ[#, 1] &, det, {2}];
det = Extract[det, Position[cond2, Table[True, 4]]];
cond3 = Map[MemberQ[#, 2] &,
Apply[#1 + #2 &, Subsets[#, {2}] & /@ det, {2}], {2}];
det = Extract[det, Position[cond3, Table[True, 6]]];
cond4 = Map[MemberQ[#, 2] &,
Apply[#1 - #2 &, Subsets[#, {2}] & /@ det, {2}], {2}];
result2 = Extract[det, Position[cond4, Table[True, 6]]];
Length@result
96
You have repeated element 5th and 7th: delete 7th and the last one we will have
list = {{4, 4, 4, 4}, {-4, 4, 4, 4}, {4, -4, 4, 4}, {4, 4, -4, 4}, {4,
4, 4, -4}, {-4, -4, 4, 4}};
Since Det will be zero whenever there are two identical rows, better to use Permutations
list = {{4, 4, 4, 4}, {-4, 4, 4, 4}, {4, -4, 4, 4}, {4, 4, -4, 4}, {4,
4, 4, -4}, {-4, -4, 4, 4}};
mat = Permutations[list, {4}];
mat2 = Select[mat, Det@# != 0 &];
Length@mat2
312
Condition 3 automatically apply:
condition3 = Thread[Total /@ Total /@ Permutations[list, {2}] >= 8]
{True, True, True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True}
Tuples
is your friend here! You should post your code, too, for us to help you with, after you take a look at the link I posted. $\endgroup$ – CA Trevillian Oct 20 '19 at 12:37{-4,-4,-4,4}
$\endgroup$ – OkkesDulgerci Oct 20 '19 at 14:30