#!/usr/bin/python3 import sys def anagrams(dictionary): ws = {} for word in dictionary: ana = ''.join(sorted(word.lower())) if ana not in ws: ws[ana] = [] ws[ana].append(word) for ana in sorted(ws, key=lambda k: (len(ws[k]), k), reverse=True): yield ws[ana] if __name__ == '__main__': for grams in anagrams(line.strip() for line in open(sys.argv[1])): if len(grams) == 1: break print(' '.join(grams))