Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39202
  • 博文数量: 10
  • 博客积分: 193
  • 博客等级: 入伍新兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-04 08:52
文章分类

全部博文(10)

文章存档

2012年(10)

我的朋友

分类: Python/Ruby

2012-02-08 10:31:00

  1. def xcombination(seq,length):
  2.         if not length:
  3.                 yield []
  4.         else:
  5.                 for i in xrange(len(seq)):
  6.                         for result in xcombination(seq[i+1:],length-1):
  7.                                 yield [seq[i]]+result


  8. comb=xcombination("ABCDE",3)
  9. print list(comb)


每一次递归到底的时候的时候返回一个空列表[],
第一次递归的倒数第二层是 [‘C’]+[],生成['C'],返回上一层执行['B']+['C'],生成['B','C'],向上返回,执行['A']+['B','C'],生成['A','B','C']。依次类推。
阅读(7888) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~