【发布时间】:2011-08-26 18:25:21
【问题描述】:
我有以下代码:
def 生产组合(文本,最大窗口宽度) 组合 = [] 对于范围内的窗口宽度(1,最大窗口宽度 + 1): 对于范围内的起始索引(len(文本)-windowWidth+1): 组合.append((文本[startingIndex:startingIndex+windowWidth])) 返回组合 产生组合((“1”,“2”,“3”,“4”,“5”,“6”,),3)给出以下输出:
('1',) ('2',) ('3',) ('4',) ('5',) ('6',) ('1', '2') ('2', '3') ('3', '4') ('4', '5') ('5', '6') ('1', '2', '3') ('2', '3', '4') ('3', '4', '5') ('4', '5', '6')但是我也希望这个算法给我额外的组合:
('1', '3') # 1 跳 ('2', '4') ('3', '5') ('4', '6') ('1', '4') # 2 跳 ('2', '5') ('3', '6') ('4', '7') ('1', '3', '4') # 1 和 0 的跃点 ('2', '4', '5') ('3', '5', '6') ('1', '2', '4') # 0 和 1 的跳跃 ('2', '3', '5') ('3', '4', '6') ('1', '3', '5') # 1 和 1 的跳跃 ('2', '4', '6') ('1', '2', '5') # 0 和 2 的跳跃 ('2', '3', '6') ('1', '3', '6') # 1 和 2 的跃点 ('1', '4', '5') # 2 和 0 的跳跃 ('2', '5', '6') ('1', '4', '6') # 2 和 1 的跳跃我的函数将有一个名为 maximumHop 的新参数,以限制这些额外组合的数量。对于上面的例子,maximumHop 是 2,因为 ('1', '5') 的组合是不可能的。
有什么好的方法可以做到这一点吗?
谢谢,
巴里
【问题讨论】:
标签: python-3.x