code: def enumerate(self):
          
  
          done = False
          while not done:
              model = self.compute()
  
              if model != None:
                  self.add_clause([-l for l in model])
                  yield model
              else:
                  done = True
docs: Enumerate top MaxSAT solutions (from best to worst). The
              method works as a generator, which iteratively calls
              :meth:`compute` to compute a MaxSAT model, blocks it
              internally and returns it.
  
              :returns: a MaxSAT model
              :rtype: list(int)
  
              .. code-block:: python
  
                  >>> from pysat.examples.rc2 import RC2
                  >>> from pysat.formula import WCNF
                  >>>
                  >>> rc2 = RC2(WCNF())  # passing an empty WCNF() formula
                  >>> rc2.add_clause([-1, -2])  # adding clauses "on the fly"
                  >>> rc2.add_clause([-1, -3])
                  >>> rc2.add_clause([-2, -3])
                  >>>
                  >>> rc2.add_clause([1], weight=1)
                  >>> rc2.add_clause([2], weight=1)
                  >>> rc2.add_clause([3], weight=1)
                  >>>
                  >>> for model in rc2.enumerate():
                  ...     print model, rc2.cost
                  [-1, -2, 3] 2
                  [1, -2, -3] 2
                  [-1, 2, -3] 2
                  [-1, -2, -3] 3
                  >>> rc2.delete()