Haskell, 3939 37 36 bytes
(a:t)#n=any(==n)(map#n=n`elem`map(a+)t)||t#nt||t#n _#n=1<0 Try it online!Try it online! Example usage: [1,3,2,5] # 3. Returns True or False.
40 byte alternativeAlternative (also 36 bytes)
f(a:t)=map(a+)t++f t f e=e (.f).any.(==)elem