secrets を使用するだけで良い。
サンプルコード
import secrets
import string
print(string.ascii_letters) # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(secrets.choice(string.ascii_letters)) # 実行結果の例 R
応用:パスワード生成してみる
import secrets
import string
size = 8
# 小文字、大文字、数字、記号
s = string.ascii_lowercase + string.ascii_uppercase + string.digits + string.punctuation
print("".join(secrets.choice(s) for x in range(size))) # 実行結果の例 i(1o-+N*