'Get the next value in the sequence'

def __call__(self, val, last=None):

    if ((val is None) or (len(val) < self.sequence_length)):
        return self.sequence_string[0]
    last_value = val[(- self.sequence_length):]
    if ((not self.rollover) and (last_value == self.last_item)):
        val = ('%s%s' % (self(val[:(- self.sequence_length)]), self._inc(last_value)))
    else:
        val = ('%s%s' % (val[:(- self.sequence_length)], self._inc(last_value)))
    return val
