<pre class="lang-py prettyprint-override"><code>pattern_index_zero = "xa1b2c3d4e5"
pattern = [letter for letter in pattern_index_zero]
possible_options = ['0', '1', '2', '3', '4', '5', 'a', 'b', 'c', 'd', 'e']
indices_values = []
for i0 in range(0, len(pattern)):
for i1 in range(0, len(pattern)):
if i0 != i1 and (i1, i0) not in indices_values:
indices_values.append((i0, i1))
current_indices_index = 0
possibilities = []
for index0, index1 in indices_values:
for new_option0 in possible_options:
if new_option0 != pattern[index0]:
for new_option1 in possible_options:
if new_option1 != pattern[index1]:
pattern_copy = pattern.copy()
pattern_copy[index0] = new_option0
pattern_copy[index1] = new_option1
possibilities.append(''.join(pattern_copy))
</code></pre>
<p>这是使用<code>for</code>循环的基本结构来解决问题。我们首先创建一个列表,其中两个索引的值将发生变化。此列表看起来有点像:<code>[(0, 1), (0, 2), ..., (1, 0), (1, 2), ...]</code>,包含所有选项</p>
<p>然后,我们迭代每一个可能的索引,我们可以更改其值</p>
<pre class="lang-py prettyprint-override"><code>for index0, index1 in indices_values:
</code></pre>
<p>在本文中,我们还迭代了字符串的索引也可以更改为的所有值</p>
<pre class="lang-py prettyprint-override"><code>for new_option0 in possible_options:
</code></pre>
<p>然后检查<code>new_option0</code>是否不等于当前值,以确保没有重复项。如果没有,我们将再次迭代可能的选项-这次是为了更改第二个索引。我们再次检查<code>new_option1</code>是否不等于当前值</p>
<p>最后,我们附加编辑后的值</p>
<p>为了确认确实没有重复项,以下代码输出<code>True</code>:</p>
<pre class="lang-py prettyprint-override"><code>len(possibilities) == len(set(possibilities))
</code></pre>
<p>如果您想增加编辑的索引数量,我想您可以增加<code>for</code>循环和<code>if</code>语句的数量。这是一个非常模块化的结构</p>