##Pyth, 20 bytes ho-JrN0-JGfg.{rT0G.: Explanation: .: - substrings of input() fg.{rT0G - filter to ones which contain the alphabet o-JrN0-JG - sort by number of alphabetical chars h - ^[0] fg.{rT0G - filter(lambda T:V, substrings) rT0 - T.lower() .{ - set(^) g G - is_subset(^, alphabet) -JrN0-JG - sort(^, lambda N:V) rN0 - N.lower() J - J = ^ - - ^-V -JG - J-alphabet [Try it here!](http://pyth.herokuapp.com/?code=ho-JrN0-JGfg.{rT0G.%3A&input=%27%22The+five+boxing+wizards+jump+quickly.%22+stated+Johnny%2C+before+beginning+to+recite+the+alphabet+with+a+bunch+of+semicolons+in+the+middle.+%22ABCDEFGHI%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3BJKLMNOPQRSTUVWXYZ!%22+he+shouted+to+the+heavens.%27%0A&test_suite=1&test_suite_input=%22This+isn%27t+a+pangram.%22%0A%22Everyone+knows+about+that+infamous+Quick-Brown-Fox+%28the+one+who+jumped+over+some+lazy+ignoramus+of+a+dog+so+many+years+ago%29.%22%0A%27%22The+five+boxing+wizards+jump+quickly.%22+stated+Johnny%2C+before+beginning+to+recite+the+alphabet+with+a+bunch+of+semicolons+in+the+middle.+%22ABCDEFGHI%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3BJKLMNOPQRSTUVWXYZ!%22+he+shouted+to+the+heavens.%27&debug=0)