For cryptographically strong pseudo-random bytes you might use the pyOpenSSL wrapper around OpenSSL.
It provides the bytes function to gather a pseudo-random sequences of bytes.
from OpenSSL import rand
b = rand.bytes(n7)
BTW, 12 uppercase letters is a little bit more that 56 bits of entropy. You will only to have to read 7 bytes.