code: def get_pub_abbreviation(pubstring, numBest=5, exact=None):
      
      if exact:
          # Only try to find exact matches
          bibstems = _defaultSourcematcher.getExactMatch(string.upper(pubstring))
      else:
          # Allow fuzzy matching
          bibstems = _defaultSourcematcher.getBestMatches(string.upper(pubstring), numBest)
          if re.search(r"L(ett(ers)?)?$",pubstring):
              addit = _defaultSourcematcher.getBestMatches(re.sub(r"(?i)\s*L(ett(ers)?)?$", "", pubstring.upper()), 2)
              if addit:
                  bibstems.extend(addit)
                  bibstems.sort()
      # Make the list of results unique
      try:
          bibstems = list(set(bibstems))
      except:
          bibstems = []
      # Sort the list of results from highest score to lowest score
      bibstems.sort(key=lambda tup: tup[0], reverse=True)
  
      return bibstems
docs: Get ADS journal abbreviation ("bibstem") candidates for a given publication name.
      * 'exact': if True results will only be returned if an exact match was found
      * 'numBest': maximum number of guesses to return
      A list of tuples will be returned, each tuple consisting of a score and a bibstem