title: Alternative to hexdigest that uses all 26 letters?
body: <p>I'm writing an application that makes calls to various APIs.  Each API does its own logging, and I'd like to make it easy to trace a transaction across all the various logfiles.</p>
  
  <p>To do this, I create a unique(ish) string when a transaction starts, log it, and pass that string to the other APIs so they can all include it in their logging.</p>
  
  <p>This is the code I'm using:</p>
  
  <pre><code>s = '%s %s' % (username, datetime.datetime.now())
  token = hashlib.md5(s.encode('utf-8')).hexdigest()
  </code></pre>
  
  <p>This is working well, however there is room for improvement.  <code>hexdigest()</code> (obviously) only uses hex characters, i.e. <code>0-9</code> and <code>a-f</code>.  I don't care too much if I get an occasional token collision, but I'd like to avoid it as much as possible.  Is there a similar function that will use all 26 letters?</p>