code: def _fit_overlay_lists(self, text, start, matchers, **kw):
          
  
          if matchers:
              for o in matchers[0].fit_overlays(text, start):
                  for rest in self._fit_overlay_lists(text, o.end, matchers[1:]):
                      yield [o] + rest
  
          else:
              yield []
docs: Return a list of overlays that start at start.