I\'m wondering if there is more elegant way to check if the string (str = \'abcccbbaabcbca\') contains only \'a\',\'b\' or \'c\' than iterating over it :
for
Convert both strings to sets and check if they are equal. If yes, your string contains a AND b AND c:
valid = set(your_string) == set('abc')...
Use issubset to check if it contains ANY of a, b, c:
valid = set(your_string) <= set('abc')
or
valid = set(your_string).issubset('abc')
Subtract the sets to find out invalid characters:
bad_chars = set('abcXYcba') - set('abc') # set(X,Y)