title: How to return the most frequent letters in a string and order them based on their frequency count
body: <p>I have this string: <code>s = "china construction bank"</code>. I want to create a function that returns the 3 most frequent characters and order them by their frequency of appearance and the number of times they appear, but if 2 characters appears the same number of times, they should be ordered based on their alphabetical order. I also want to print each character in a separate line.</p>
  
  <p>I have built this code by now:</p>
  
  <pre><code>from collections import Counter
  def ordered_letters(s, n=3):
      ctr = Counter(c for c in s if c.isalpha())
      print ''.join(sorted(x[0] for x in ctr.most_common(n)))[0], '\n', ''.join(sorted(x[0] for x in ctr.most_common(n)))[1], '\n', ''.join(sorted(x[0] for x in ctr.most_common(n)))[2]`
  </code></pre>
  
  <p>This code applied to the above string will yield:</p>
  
  <pre><code>a 
  c 
  n
  </code></pre>
  
  <p>But this is not what i really want, what i would like as output is:</p>
  
  <pre><code>1st most frequent: 'n'. Appearances: 4
  2nd most frequent: 'c'. Appearances: 3
  3rd most frequent: 'a'. Appearances: 2
  </code></pre>
  
  <p>I'm stuck in the part where i have to print in alphabetical order the characters which have the same frequencies. How could i do this?</p>
  
  <p>Thank you very much in advance</p>