x1 = [('f', 9), ('e', 8), ('a', 5), ('b', 5), ('c', 4), ('d', 3), ('g', 2), ('h', 1)]
x1.sort(key=lambda x: x[1], reverse=True)
max5set = set()
i = 0
for _, num in x1:
max5set.add(num)
i += 1
if (len(max5set) == 6):
break
print(x1[:i-1])
вывод:
[('f', 9), ('e', 8), ('a', 5), ('b', 5), ('c', 4), ('d', 3)]
если вы хотите получить этот список кортежей в алфавитном порядке, сделайте
print(sorted(x1[:i-1], key=lambda x: x[0]))
вывод будет
[('a', 5), ('b', 5), ('c', 4), ('d', 3), ('e', 8), ('f', 9)]