codes = ['XA1', 'CZZ', 'BT9', 'WFF']
strs = ['XA1', 'XA1;CZZ', 'XA1;BT9;WFF;', 'XA1;XA1;', 'XA1;something']
for s in strs:
chunks = s.strip(';').split(';')
if set(chunks).issubset(codes) and len(chunks) == len(set(chunks)):
print("{}: Valid!".format(s))
else:
print("{}: Invalid!".format(s))
Y29kZXMgPSBbJ1hBMScsICdDWlonLCAnQlQ5JywgJ1dGRiddCnN0cnMgPSBbJ1hBMScsICdYQTE7Q1paJywgJ1hBMTtCVDk7V0ZGOycsICdYQTE7WEExOycsICdYQTE7c29tZXRoaW5nJ10KZm9yIHMgaW4gc3RyczoKICAgIGNodW5rcyA9IHMuc3RyaXAoJzsnKS5zcGxpdCgnOycpCiAgICBpZiBzZXQoY2h1bmtzKS5pc3N1YnNldChjb2RlcykgYW5kIGxlbihjaHVua3MpID09IGxlbihzZXQoY2h1bmtzKSk6CiAgICAJcHJpbnQoInt9OiBWYWxpZCEiLmZvcm1hdChzKSkKICAgIGVsc2U6CiAgICAJcHJpbnQoInt9OiBJbnZhbGlkISIuZm9ybWF0KHMpKQ==