Source code for hal.maths.combo.utils
#!/usr/bin/env python
# coding: utf-8
[docs]def recursive_set(lst, length):
"""Returns the set of all possible sets with such items
:param lst: list
:param length: length of inner sets
:return: set of all sets
"""
if length <= 1:
return [[x] for x in lst] # just 1 occurrence of all possible items
smaller_set = recursive_set(lst, length - 1)
return [
[item, *prev]
for item in lst
for prev in smaller_set
]
[docs]def get_superset(iterable, length):
"""Returns the set of all possible sets with such items
:param iterable: iterable
:param length: length of inner sets
:return: set of all sets
"""
lst = list(set(iterable))
return recursive_set(lst, length)