diff --git a/lib/ansiblelint/__init__.py b/lib/ansiblelint/__init__.py
index <HASH>..<HASH> 100644
--- a/lib/ansiblelint/__init__.py
+++ b/lib/ansiblelint/__init__.py
@@ -125,7 +125,7 @@ class RulesCollection(object):
             return matches
 
         for rule in self.rules:
-            if not tags or not set(rule.tags + [rule.id]).isdisjoint(tags):
+            if not tags or not set(rule.tags).union([rule.id]).isdisjoint(tags):
                 rule_definition = set(rule.tags)
                 rule_definition.add(rule.id)
                 if set(rule_definition).isdisjoint(skip_list):
Fix tags set creation in certain cases

In some circumstances the rule id can't be added to the list.
By using union on sets, this problem is avoided