横からすみません。
277さんと近い状況だったので、失礼します。
私も悩んでいることがありまして

a = "string.ascii_lowercase"
a += " + string.ascii_uppercase"
a += " + string.digits"

for i in range(8):
s += random.choice(a)
とする
「string.ascii_lowercase + string.ascii_uppercase + string.digits」
この文字そのものからランダムに選択されるのですが
これを
s += random.choice(string.ascii_lowercase + string.ascii_uppercase + string.digits)と
同じように動作させるにはどのようにすればよいのでしょうか。
278さんのアドバイスから、私もDictionaryで

a[1] = "string.ascii_lowercase"
a[1] += " + string.ascii_uppercase"
a[1] += " + string.digits"

for i in range(8):
s += random.choice(a[1])

と、やってみたのですが
同じ結果となってしまいました。