不是去判斷一個表示是否最小,而是把每個最小做出來。每出現一個最小表示,就做一次置換操作就可以了: 開頭為m=000...01的串都可以表示成: m+k,這裏m+表示1個或者多個m串,而k是最長0不超過m-1的,1結尾的串。所以一個loop對m的個數循環就可以了。 每次出現一個最小表示,都callback置換程序一次,不需要把這個表示存下來。