我在這裏看到了一些關於排列的代碼貼子,但我還沒有真正能夠找到一個很好的循序漸進的實際發生的事情。如果有人能夠解釋這段代碼的每一步實際發生的事情,我會非常感激。我似乎無法把頭圍住它。我正在看的代碼是Python,並且從http://snippets.dzone.com/posts/show/753。有人可以解釋這個python排列代碼嗎?
def all_perms(str):
if len(str) <=1:
yield str
else:
for perm in all_perms(str[1:]):
for i in range(len(perm)+1):
yield perm[:i] + str[0:1] + perm[i:]
for p in all_perms(['a','b','c']):
print p
謝謝!這是我正在尋找的。產量和遞歸的結合使我首先很難掌握,但現在它是有道理的。我知道你對str變量的看法。如果我寫了它,我也不會將它命名爲,但是我只是從我在原始帖子中提到的網站抓取它。再次感謝! – bb89 2011-03-25 17:07:34
令人驚訝的是,當給變量賦予專有名稱時,一些代碼可以變得更簡單;這就是我提到它的原因。 – 2011-03-25 17:09:26