code: def getSolution(self, domains, constraints, vconstraints):
          
          msg = "%s is an abstract class" % self.__class__.__name__
          raise NotImplementedError(msg)
docs: Return one solution for the given problem
  
          @param domains: Dictionary mapping variables to their domains
          @type  domains: dict
          @param constraints: List of pairs of (constraint, variables)
          @type  constraints: list
          @param vconstraints: Dictionary mapping variables to a list of
                               constraints affecting the given variables.
          @type  vconstraints: dict