The logic that doesn't exist is (in pseudo-code):
forEach( emailAddress in listOfAddresses )
forEach( leadId in emailAddress.allLeads )
forEach( list in is leadId.listMemberships )
if( list.name.containsPattern(".*(word1|word2).*")
list.removeMember(leadId)
end
end
end
end
Now, you can actually build something like this offline using the API (not actually so easy, since it involves polling for all the lists). But for practical (UI-only) purposes it isn't possible.
you will have to do something like this to achieve what you want, hopefully you don't have too many lists to list...