Couldn't this be done by setting up a series of massive "Keyword" playlists?

For all logical combinations of 100 keywords you'll need 2^2^100 playlists...

Borislav