Возможно, есть более эффективный способ, но он должен работать.
import numpy as np
from itertools import product
sq_dim = 3
all_x = product([1, -1], repeat=sq_dim**2)
all_x = np.reshape(list(all_x), (-1, sq_dim, sq_dim))
for x in all_x:
np.fill_diagonal(x, 0)
solution = np.unique(all_x, axis=0)