def _search(forward, source, target, start=0, end=None):
    """Naive search for target in source."""
m = len(source)
n = len(target)
if end is None:
    end = m
else:
    end = min(end, m)
if n == 0 or end - start < n:
    return None
if forward:
    x = list(range(start, end - n + 1))
else:
    x = list(range(end - n, start - 1, -1))
for i in x:
    if source[i:i + n] == target:
        return i
return None
Есть ли встроенный Python для определения того, содержит ли итерируемый объект определенную последовательность?