Александр, а, я вообще не прочитал сам заголовок вопроса, только описание. Тогда мои варианты тебе не подойдут, так как они для вхождения отдельных элементов.
Александр, проверка через поиск подстроки в строке может выдать ошибочный результат, если элементы из нескольких символов и могут пересекаться. Можно проверить именно вхождение списка, перебирая по индексу, например так:
a = ['p', 'p', 'p', 'p', 'p', 'p', 'figure', 'h2', 'figure', 'p', 'p', 'p', 'p', 'p', 'p']
patt = ['p', 'figure', 'h2', 'figure']
if any(a[i:i+len(patt)] == patt for i in range(len(a)-len(patt))):
print('found')