From what you say, you want to find a certain sequence of words in another, in the same order of appearance. You have already done a good research and you have ruled out some options that do not help for this. Well, I can think of a super simple form, which conceptually is similar to the one given to you by lois6b: transform the lists into strings and compare them:
fruits = ['banana', 'grape', 'blueberry', 'kiwi', 'raspberry', 'coconut', 'apple']
colors = ['yellow', 'wine', 'blue', 'green', 'red', 'brown', 'red']
sequence = ['blue', 'green', 'red']
if ",".join(sequence) in ",".join(colors):
print("Si")
Note that when converting to a string we add a separator between each item in the list, this is to avoid some case like: ['blu', 'egreen', 'red']
, also take into account this delimiter, it should not be a character that appears in the values but this algorithm could eventually fail.
Another interesting way is going through the list and making "slice" of the size we want to find, in fact it is the safest logic, but it is also slower than the previous option.
if any(sequence == colors[i:i+len(sequence)] for i in range(len(colors) - 1)):
print("Si")