Ну как-то вот так получилось:
import difflib
def similar(arr):
s = difflib.SequenceMatcher()
full = []
for i in arr:
s.set_seq2(i)
for n in (arr):
if n == i:
continue
s.set_seq1(n)
full.append((s.ratio(), n))
full.sort(reverse=True)
print("### Отладка ### Сколько каждое слово набрало очков похожести")
for score, i in full:
print(i + str(score))
return full[0]
arr = ['голубец', 'конь', 'голубцы', 'лист']
print("Итоговый результат:" + similar(arr)[1])
arr = ['стол', 'день', 'свет', 'клинок', 'светильник']
print("Итоговый результат:" + similar(arr)[1])
arr = ['восток', 'дань', 'исток', 'жир', 'голубь', 'да']
print("Итоговый результат:" + similar(arr)[1])
Результат работы:
### Отладка ### Сколько каждое слово набрало очков похожести
голубцы0.8571428571428571
голубец0.8571428571428571
лист0.18181818181818182
лист0.18181818181818182
конь0.18181818181818182
конь0.18181818181818182
голубцы0.18181818181818182
голубцы0.18181818181818182
голубец0.18181818181818182
голубец0.18181818181818182
лист0.0
конь0.0
Итоговый результат:голубцы
### Отладка ### Сколько каждое слово набрало очков похожести
светильник0.5714285714285714
свет0.5714285714285714
стол0.5
свет0.5
стол0.42857142857142855
светильник0.42857142857142855
светильник0.375
светильник0.2857142857142857
день0.2857142857142857
свет0.25
день0.25
стол0.2
клинок0.2
клинок0.2
день0.2
клинок0.125
стол0.0
свет0.0
клинок0.0
день0.0
Итоговый результат:светильник
### Отладка ### Сколько каждое слово набрало очков похожести
исток0.7272727272727273
восток0.7272727272727273
дань0.6666666666666666
да0.6666666666666666
исток0.25
жир0.25
дань0.2
голубь0.2
исток0.18181818181818182
голубь0.18181818181818182
голубь0.16666666666666666
восток0.16666666666666666
исток0.0
исток0.0
жир0.0
жир0.0
жир0.0
жир0.0
дань0.0
дань0.0
дань0.0
да0.0
да0.0
да0.0
да0.0
голубь0.0
голубь0.0
восток0.0
восток0.0
восток0.0
Итоговый результат:исток