Use sets; either test for an intersection or for a subset:
if set(inpt) & set(letters):
# *some* letters are in inpt
or
if set(letters) <= set(inpt):
# *all* letters are in inpt
or if you wanted all characters in inpt
to be in letters
(so only a
, b
, c
or d
can be used, use the inverse:
if set(inpt) <= set(letters):
# *all* of inpt is in letters
Demo:
>>> letters = ['a', 'b', 'c', 'd']
>>> inpt = 'the quick brown fox jumped over the lazy dog'
>>> set(letters) & set(inpt)
{'d', 'c', 'a', 'b'}
>>> set(letters) <= set(inpt)
True
>>> inpt = 'no letters in use!'
>>> set(letters) & set(inpt)
set()
>>> set(letters) <= set(inpt)
False
>>> inpt = 'abbacac'
>>> set(inpt) <= set(letters)
True
where an empty set()
is considered false when used in an if
statement, a non-empty set()
is considered true.