You don't need Iron Python and yes limit data by expression would work.
So your use case is: the document property is a string containing:
- either a single value, with a $ in front
- or multiple values, comma separated
This expression would work for that:
Find(Concatenate([YourVariable],','),Concatenate(Substitute('${YourDocumentProperty}','\$',''),','))>0
Substitute() gets rid of the initial $ if present
Concatenate() on both probe and expression ensures you are not recognizing e.g. 1234 when your expression only contains 123.