'Generate a string which is intended to be unique across all calls to
this function (across all processes, reboots, etc).
Strings returned by earlier calls to this method will compare less
than strings returned by later calls as long as the clock provided
doesn\'t go backwards.
@rtype: L{bytes}
@return: A unique string.'

def generate(self):

    self.n = (self.n + 1)
    t = self._clock.seconds()
    seconds = str(int(t))
    microseconds = ('%07d' % (int(((t - int(t)) * 10000000.0)),))
    return ('%s.M%sP%sQ%s.%s' % (seconds, microseconds, self.p, self.n, self.s))
