classSolution: defpermutations(self, data, start_index, end_index): if start_index == end_index: if data notin self.result: self.result.append(data[:]) return
for i inrange(start_index, end_index): data[i], data[start_index] = data[start_index], data[i] self.permutations(data, start_index + 1, end_index) data[i], data[start_index] = data[start_index], data[i]