or after the end offset
        # we do this by first getting the intervals the start before or at the start
        # then filtering by end
        # NOTE: if the given range is zero length, then if the interval starts before the start
        # it must end at least 1 after the end!
        if start == end:
            for intvl in self._by_start.irange(maximum=(start, sys.maxsize, sys.maxsize)):
                if intvl[0] &lt; start and intvl[1] &gt; end:
                    yield intvl
                e