Shorter but not necessarily better:
print([x for x in a if not any(x in j for j in a if x != j)])
With removing of duplicates in the final list (resembles behavior from question):
print(list(set(x for x in a if not any(x in j for j in a if x != j))))