code: def xfrange(start, stop, step=1, maxSize=-1):
      
      if start <= stop:
          stop, step = stop + 1, abs(step)
      else:
          stop, step = stop - 1, -abs(step)
  
      if maxSize >= 0:
          size = lenRange(start, stop, step)
          if size > maxSize:
              raise exceptions.MaxSizeException(
                  "Size %d > %s (MAX_FRAME_SIZE)" % (size, maxSize))
  
      # because an xrange is an odd object all its own, we wrap it in a
      # generator expression to get a proper Generator
      return (f for f in xrange(start, stop, step))
docs: Returns a generator that yields the frames from start to stop, inclusive.
      In other words it adds or subtracts a frame, as necessary, to return the
      stop value as well, if the stepped range would touch that value.
  
      Args:
          start (int):
          stop (int):
          step (int): Note that the sign will be ignored
          maxSize (int):
  
      Returns:
          generator:
  
      Raises:
          :class:`fileseq.exceptions.MaxSizeException`: if size is exceeded