Args:
            group (list):  A group of states
        Return:
            tuple: A set of two groups

def _partition_group(self, group):
        """
        Args:
            group (list):  A group of states
        Return:
            tuple: A set of two groups
        """
        for (group1, group2, distinguish_string) in self.bookeeping:
            if group & group1 != set() and not group.issubset(group1):
                new_g1 = group & group1
                new_g2 = group - group1
                return (new_g1, new_g2, distinguish_string)
            if group & group2 != set() and not group.issubset(group2):
                new_g1 = group & group2
                new_g2 = group - group2
                return (new_g1, new_g2, distinguish_string)
        assert False, "Unmatched group partition"