Вы не можете перебирать данные, которые вы читаете, как это, потому что они представляют собой строку, поэтому в результате вы получаете последовательные символы, однако вы можете разбить строку на пробелы, что даст вам список слов
def MakeWordList():
with open('possible.rtf','r') as f:
data = f.read()
return set([word for word in data.split(' ') if len(word) >= 5 and word.islower() and not 'xx' in word])