title: Creating a random string in Python without duplicating characters
body: <p>So what I am doing is creating a 94char key that uses <code>string.digits</code> + <code>string.ascii_letters</code> + <code>string.punctuation</code></p>
  
  <p>I use this for generating the key (grabbed from this site thanks :) ) </p>
  
  <pre><code>def key_pass(size=94, chars=string.digits + string.ascii_letters + string.punctuation):
      return ''.join(random.choice(chars) for x in range(size))
  </code></pre>
  
  <p>which creates something like this 
  <code>9bMMqy-lB6Mt},bOxr@1ljey_\Z\gk`xRJBP;3YFR*i&lt;N&lt;!MB}_|0p3f5Q"l8'xEj)WHYGk7O]vQZ1cZ'(diMKS*gW%u$</code></p>
  
  <p>What I'm really wanting to do is something that just randomly organizes the 94characters in the <code>chars</code> var. So I can't have anything that repeats I just cant seem to get the right way to implement an if statement that would check the variable </p>
  
  <p>Any advice?</p>