class ExtendedString(str):
    def __init__(self, s):
        self.s = s

    def __eq__(self, other):
        if len(self.s) > len(other.s):
            return other.s in self.s
        else:
            return self.s in other.s

    def __ne__(self, other):
        if len(self.s) > len(other.s):
            return other.s not in self.s
        else:
            return self.s not in other.s

    def __hash__(self):
        return super(str, self).__hash__()

list1 = ['Вася.пидор', 'Петя.гной', 'Маша.шлюха', 'Саша.блядь', 'пека', 'йоба']
list2 = ['Вася', 'Петя', 'йоба']

es_list1 = [ExtendedString(s) for s in list1]
es_list2 = [ExtendedString(s) for s in list2]

print(list1)
print(list2)
print([s for s in es_list1 if s not in es_list2])