import re
rx = r'([0-9]+)|([A-Z]+)|[a-z]+'
w = "XXXxxx999XX"
def repl(m):
if m.group(1):
return '9'
elif m.group(2):
return 'X'
else:
return 'x'
print(re.sub(rx, repl, w))
aW1wb3J0IHJlCgpyeCA9IHInKFswLTldKyl8KFtBLVpdKyl8W2Etel0rJwp3ID0gIlhYWHh4eDk5OVhYIgoKZGVmIHJlcGwobSk6CglpZiBtLmdyb3VwKDEpOgoJCXJldHVybiAnOScKCWVsaWYgbS5ncm91cCgyKToKCQlyZXR1cm4gJ1gnCgllbHNlOgoJCXJldHVybiAneCcKCnByaW50KHJlLnN1YihyeCwgcmVwbCwgdykp