So given a square binary matrix of n-dimensions where a 1 would indicate that an entity can exist in that position and a 0 would indicate it cannot exist in that position, my question is; is their an efficient algorithm to determine possible orders of the set, if each entity can only be in one position in the final order(s) and the final order(s) must use each entity.
For example, the top row is the entity name and the first column is the position number, given this matrix:
$$A = \begin{array}{l|llllll} & a& b& c& d& e& f\\ \hline 1& 1& 0& 1& 0& 0& 0\\ 2& 1& 1& 0& 1& 0& 0\\ 3& 1& 1& 1& 1& 0& 0\\ 4& 0& 1& 0& 1& 0& 1\\ 5& 0& 0& 1& 1& 1& 1\\ 6& 0& 0& 0& 1& 1& 1\\ \end{array} $$
One example of a possible order is
a - b - c - d - e - f
and
c - a - b - d - e - f
Using an algorithm based on permanents of binary matrices, I can determine that there is a total 20 possible successful orders for this particular matrix. Without brute forcing all possible permutations, is there a way to efficiently determine what each possible order is.