what you show below is predictable; perhaps you mean

```
>>> a, b = symbols('a b', cls=Wild)
>>> (2*x).match(a*b)  # `a` could be 2 or x
{a_: 2, b_: x}
>>> a = Wild('a', exclude=[x])
>>> (2*x).match(a*b)
{a_: 2, b_: x}
```