def algo(words): t = [] for word in words: t.append((len(word), word)) t.sort(key=lambda t: t[1][-1]) res = [] for l, w in t: res.append(w) res = filter(lambda t: 'a' in t, res) return list(res) if __name__=="__main__": print(algo(["Pierre", "Jean", "Marie", "Eric", "Nathalie", "Yvonne"]))