import re
strings = [
'a1b2c$3d#4e!f@ghi0',
'test$test$test123'
]
for str in strings:
sym = r'^[^!@#$%&*\r\n]*[!@#$%&*][^!@#$%&*\r\n]*[!@#$%&*][^!@#$%&*\r\n]*\Z'
num = r'^[^\d\r\n]*\d[^\d\r\n]*\d'
if re.search(sym, str) and re.search(num, str):
print(f'match! {str}')
else:
print(f'no match! {str}')
aW1wb3J0IHJlCgpzdHJpbmdzID0gWwoJJ2ExYjJjJDNkIzRlIWZAZ2hpMCcsCgkndGVzdCR0ZXN0JHRlc3QxMjMnCl0KCmZvciBzdHIgaW4gc3RyaW5nczoKCXN5bSA9IHInXlteIUAjJCUmKlxyXG5dKlshQCMkJSYqXVteIUAjJCUmKlxyXG5dKlshQCMkJSYqXVteIUAjJCUmKlxyXG5dKlxaJwoJbnVtID0gcideW15cZFxyXG5dKlxkW15cZFxyXG5dKlxkJwoJCglpZiByZS5zZWFyY2goc3ltLCBzdHIpIGFuZCByZS5zZWFyY2gobnVtLCBzdHIpOgoJICAgIHByaW50KGYnbWF0Y2ghIHtzdHJ9JykKCWVsc2U6CgkgICAgcHJpbnQoZidubyBtYXRjaCEge3N0cn0nKQ==