def lietkehoanvi(arr, output=[]):
for i in arr:
if i not in output:
output.append(i)
if len(output) == len(arr):
print output
else:
lietkehoanvi(arr, output)
output.pop()
lietkehoanvi([1,2,3,4])
---------------------------
for i in [x*x for x in range(1,6)]:
print i
for i in (x*x for x in range(1,6)):
print i
def generator():
for i in range(1,6):
yield i*i
for i in generator():
print i
-------------------------------------
class HoanVi():
def __init__(self, data):
self._data = data
self._out = []
def __iter__(self):
return self.next()
def next(self):
for i in self._data:
if i not in self._out:
self._out.append(i)
if len(self._out) == len(self._data):
yield self._out
else:
for v in self.next():
yield v
self._out.pop()
for i in HoanVi([1,2,3,4]):
print i
------------------------
import copy
class HoanVi():
_data = []
_result = []
_out = []
def __init__(self, arr):
self._data = arr[:]
self.hoanvi()
def hoanvi(self):
for i in self._data:
if i not in self._out:
self._out.append(i)
if len(self._out) == len(self._data):
a = copy.copy(self._out)
self._result.append(a)
else:
self.hoanvi()
self._out.pop()
a = HoanVi([1,5,3,6])
for i in a._result:
print i
for i in arr:
if i not in output:
output.append(i)
if len(output) == len(arr):
print output
else:
lietkehoanvi(arr, output)
output.pop()
lietkehoanvi([1,2,3,4])
---------------------------
for i in [x*x for x in range(1,6)]:
print i
for i in (x*x for x in range(1,6)):
print i
def generator():
for i in range(1,6):
yield i*i
for i in generator():
print i
-------------------------------------
class HoanVi():
def __init__(self, data):
self._data = data
self._out = []
def __iter__(self):
return self.next()
def next(self):
for i in self._data:
if i not in self._out:
self._out.append(i)
if len(self._out) == len(self._data):
yield self._out
else:
for v in self.next():
yield v
self._out.pop()
for i in HoanVi([1,2,3,4]):
print i
------------------------
import copy
class HoanVi():
_data = []
_result = []
_out = []
def __init__(self, arr):
self._data = arr[:]
self.hoanvi()
def hoanvi(self):
for i in self._data:
if i not in self._out:
self._out.append(i)
if len(self._out) == len(self._data):
a = copy.copy(self._out)
self._result.append(a)
else:
self.hoanvi()
self._out.pop()
a = HoanVi([1,5,3,6])
for i in a._result:
print i
-------------------------
[1, 5, 3, 6]
[1, 5, 6, 3]
[1, 3, 5, 6]
[1, 3, 6, 5]
[1, 6, 5, 3]
[1, 6, 3, 5]
[5, 1, 3, 6]
[5, 1, 6, 3]
[5, 3, 1, 6]
[5, 3, 6, 1]
[5, 6, 1, 3]
[5, 6, 3, 1]
[3, 1, 5, 6]
[3, 1, 6, 5]
[3, 5, 1, 6]
[3, 5, 6, 1]
[3, 6, 1, 5]
[3, 6, 5, 1]
[6, 1, 5, 3]
[6, 1, 3, 5]
[6, 5, 1, 3]
[6, 5, 3, 1]
[6, 3, 1, 5]
[6, 3, 5, 1]
Nhận xét
Đăng nhận xét