title: heapq.nlargest produces inconsistent results
body: <p>The following code produces inconsistent results if executed multiple times. I ran it on Debian 8.4 (jessie) with Python-3.5.1.</p>
  
  <pre><code>from heapq import nlargest
  from operator import itemgetter
  
  dd = dict([('41', 768.0), ('2', 15275.0), ('9', 1728.0), ('90', 1728.0),
             ('97', 1200.0), ('68', 2904.0), ('98', 4380.0), ('16', 768.0),
             ('37', 768.0), ('17', 1587.0), ('25', 4495.4)])
  
  print(nlargest(5, dd.items(), key=itemgetter(1)))
  </code></pre>
  
  <p>outputs after multiple execution:</p>
  
  <pre><code>[('2', 15275.0), ('25', 4495.4), ('98', 4380.0), ('68', 2904.0), ('90', 1728.0)]
  [('2', 15275.0), ('25', 4495.4), ('98', 4380.0), ('68', 2904.0), ('9', 1728.0)]
  [('2', 15275.0), ('25', 4495.4), ('98', 4380.0), ('68', 2904.0), ('90', 1728.0)]
  [('2', 15275.0), ('25', 4495.4), ('98', 4380.0), ('68', 2904.0), ('90', 1728.0)]
  </code></pre>
  
  <p>It looks random, can anybody explain why this is happening?</p>
  
  <p>if replace <code>dd.items()</code> with <code>sorted(dd.items())</code>, then the output becomes deterministic. i.e.</p>
  
  <pre><code>[('2', 15275.0), ('25', 4495.4), ('98', 4380.0), ('68', 2904.0), ('9', 1728.0)]
  </code></pre>
  
  <p>I also tried above code on OSX and CentOS6.7 with python-2.7, and it always returns </p>
  
  <pre><code>[('2', 15275.0), ('25', 4495.4), ('98', 4380.0), ('68', 2904.0), ('9', 1728.0)]
  </code></pre>
  
  <p>Can this be a bug in Python3 <code>heapq</code> implementation?</p>