Нет, потому что пересечение ваших слов будет разбивать отдельные буквы на элементы списка.Например,
a = 'abcd'
b = 'dcba'
становится
a = ['a', 'b', 'c', 'd']
b = ['d', 'c', 'b', 'a']
Длина пересечения будет 4, но это не правильно для вашего случая, поскольку у 'abcd' и 'dcba' нет общегоподстрока длиннее длины 1.
Кроме того, использование set для слова удалит все дублирующиеся буквы в вашем слове, что также приведет к путанице при поиске общих подстрок.
Что вам нужно сделатьвместо этого это что-то вроде разделения двух слов на списки всех возможных подстрок, например, что сделано в этом посте .Затем вы можете пересечь эти списки и взять элемент наибольшей длины.