Слияние списков

Напишите функцию, которая будет проверять, можно ли из чисел во вложенном списке составить целевой список.

Функция принимает список списков и целевой список и возвращает True или False.

Порядок чисел в списках не имеет значения (см. пример 2).

Из всех чисел во вложенном списке должен получиться набор чисел из целевого списка в точности. Не может быть ни лишних чисел (включая повторы), ни недостающих (см. примеры 3 и 4).

Примеры

canConcatenate([[1, 2, 3, 4], [5, 6], [7]], [1, 2, 3, 4, 5, 6, 7]) ➞ True
canConcatenate([[2, 1, 3], [5, 4, 7, 6]], [7, 6, 5, 4, 3, 2, 1]) ➞ True
canConcatenate([[2, 1, 3], [5, 4, 7, 6, 7]], [1, 2, 3, 4, 5, 6, 7]) ➞ False
# В целевом списке только одна 7, а во вложенном их две.
canConcatenate([[2, 1, 3], [5, 4, 7]], [1, 2, 3, 4, 5, 6, 7]) ➞ False
# Во вложенном списке нет 6.

Вариант решения

def canConcatenate(lst, target):
    return sorted(sum(lst,[])) == sorted(target)