Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # find unique non-contiguous subsets of a list
- def subSegment(patterns, span, positions, segments, loop=0, level=0):
- if level < span:
- for loop in range(level, len(patterns)):
- # a stack of positions
- positions.append(loop)
- # recursive call
- segments = subSegment(patterns, span, positions, segments, loop+1, level+1)
- else:
- segment = [p for p in positions]
- # if no duplicates in the segment
- if len(list(set(segment))) == len(segment):
- #if not duplicate: # ignore duplicates
- if segment not in segments:
- segments.append(segment)
- if positions:
- positions.pop()
- return segments
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement