Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75627
  • 博文数量: 21
  • 博客积分: 1478
  • 博客等级: 上尉
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-22 20:41
文章分类

全部博文(21)

文章存档

2011年(1)

2010年(2)

2009年(18)

我的朋友

分类: Python/Ruby

2009-10-13 13:31:20

class Permutation:
    def __init__(self, justalist):
        self._data = justalist[:]
        self._sofar = []
    def __iter__(self):
        return self.next()
    def next(self):
        for elem in self._data:
            if elem not in self._sofar:
                self._sofar.append(elem)
                if len(self._sofar) == len(self._data):
                    yield self._sofar[:]
                else:
                    for v in self.next():
                        yield v
                self._sofar.pop()

a=[1,2,3,4]
for i in Permutation(a):
    print i


    刚刚从看到的,很不错,用到了yield和generator的东西,值得借鉴。
阅读(533) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~