def value_sets(self):
count = max(<NUM_LIT:1> if not isinstance(var, VariableSet) else<EOL>len(var) for var in self._variables)<EOL>def value_set(n):<EOL><INDENT>for variable, value in iteritems(self._variables):<EOL><INDENT>if isinstance(variable, VariableSet):<EOL><INDENT>yield variable[n], value<EOL><DEDENT>else:<EOL><INDENT>yield variable, value<EOL><DEDENT><DEDENT><DEDENT>for i in range(count):<EOL><INDENT>yield value_set(i)<EOL><DEDENT>
Iterator of expression sets

        This will yield an iterator of (variable, value)-pairs for each
        expression in the expression set (each equivalent to values()). If none
        of the variables is a set variable then a single iterator will be
        yielded.