回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在努力生成循环排列,或者用Python解决“项链问题”。基本上,我希望尽可能高效地生成列表的所有循环排列。在</p>
<p>基本上,假设我们有一个列表[1,2,3,4],我想以循环的方式生成所有唯一的排列。所以:</p>
<p>[1,2,3,4],[1,3,2,4]</p>
<p>将被视为不同,鉴于:</p>
<p>[1,2,3,4],[4,1,2,3]将被视为相同的,因为我只寻找循环列表的唯一排列。在</p>
<p>我尝试过用<code>itertools</code>生成所有排列,但是当使用较大长度的列表时,这是非常低效的。在</p>
<p>作为另一个例子,考虑一个循环歌曲,其特点是[1,2,3,4,5]在重复播放。我试图想出一个算法,只生成唯一的订单。显然[1,2,3,4,5]和[4,5,1,2,3]会产生相同的顺序。在</p>
<p>正在挣扎,希望能帮助解决这个问题!在</p>