Вы можете использовать цепочку . Это делает следующее:
list_a = ['A', 'B', 'C']
list_b = ['D', 'E', 'F']
print(list(chain(list_a, list_b)))
>>> ['A', 'B', 'C', 'D', 'E', 'F']
Здесь для использования во второй попытке:
from itertools import chain
...
icons = list(chain(exact_icons, start_with_icons, contains_icons))
Из-за обновленной информации:
from functools import reduce, import operator
words_qs = reduce(operator.or_, (Q(name__iexact=word) for word in words))
YourModel.objects.filter(..., words_qs)