A hash cracker for Python 3.0 and up (module)
This can be shortened:

self.charset = charset
...
charset = ""
charsets = {"L": ascii_lowercase,
            "U": ascii_uppercase,
            "D": digits}
for key in self.charset:
    charset += charsets[key]
self.charset, charset = charset, None


To:

charsets = {"L": ascii_lowercase,
            "U": ascii_uppercase,
            "D": digits}
self.charset = ""
for key in charset:
    self.charset += charsets[key]


The last part can be shortened further by the use of str.join:

self.charset = ''.join(charsets[key] for key in charset)


You might want to wrap this in a try:...except KeyError block for some nice feedback if an unsupported key is supplied, or just leave it as is.

You should also have a look at Python's official style-guide, PEP8. It recommends using a space after the : when defining key: value pairs.