code: def minimize_matrix(self):
          
          if self._algo == EwaldMinimizer.ALGO_FAST or \
                          self._algo == EwaldMinimizer.ALGO_BEST_FIRST:
              return self._recurse(self._matrix, self._m_list,
                                   set(range(len(self._matrix))))
docs: This method finds and returns the permutations that produce the lowest
          ewald sum calls recursive function to iterate through permutations