Все зависит от того, чего вы пытаетесь достичь. Используя ваш пример дословно, быстрее использовать списки, так как вам не нужно проходить через накладные расходы при создании наборов:
import timeit
def use_sets(a, b):
return [set([b]), set([a, b])]
def use_lists(a, b):
return [[b], [a, b]]
t=timeit.Timer("use_sets(a, b)", """from __main__ import use_sets
a, b = range(2)""")
print "use_sets()", t.timeit(number=1000000)
t=timeit.Timer("use_lists(a, b)", """from __main__ import use_lists
a, b = range(2)""")
print "use_lists()", t.timeit(number=1000000)
Производит:
use_sets() 1.57522511482
use_lists() 0.783344984055
Однако по причинам, уже упомянутым здесь, вы выигрываете от использования наборов, когда вы ищете больших наборов. По твоему примеру невозможно определить, для кого эта точка перегиба, и увидишь ли ты выгоду.
Я предлагаю вам протестировать его в обоих направлениях и использовать то, что быстрее для вашего конкретного варианта использования.