Вот некоторый код, который легко читать и делает то, что вы хотите.он перебирает индексы списка и извлекает то, что вам нужно.
второй цикл - просто сгладить двойной список из списка результатов.
li= ['1','2','3','4','YES','6','7','8','9','0','YES']
result = []
for x in range(len(li)):
if li[x] is 'YES':
result.append(li[x-3:x])
final= []
for x in result:
for y in x:
final.append(y)
final = ['2 ',' 3 ',' 4 ',' 8 ',' 9 ',' 0 ']