-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmake_seq.py
More file actions
51 lines (40 loc) · 1.49 KB
/
Copy pathmake_seq.py
File metadata and controls
51 lines (40 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class MakeSeq():
def __init__(self):
self.seqlist = []
def make_seq(self, prelist, l1, l2):
if len(l1) == 1 or len(l2) == 1:
pre1 = prelist[:];pre1.extend(l1);pre1.extend(l2)
pre2 = prelist[:];pre2.extend(l2);pre2.extend(l1)
self.seqlist.append(pre1)
self.seqlist.append(pre2)
else:
pre1 = prelist[:]
pre1.append(l1[0])
self.make_seq(pre1, l1[1:], l2)
pre2 = prelist[:]
pre2.append(l2[0])
self.make_seq(pre2, l1, l2[1:])
class MakeSeqEx():
total = []
def make_seqlist_extend(self, seqlist, sqllist):
for seq in seqlist:
if len(sqllist) == 1:
ms = MakeSeq()
ms.make_seq([], seq, sqllist[0])
self.total.extend(ms.seqlist)
else:
ms = MakeSeq()
ms.make_seq([], seq, sqllist[0])
self.make_seqlist_extend(ms.seqlist, sqllist[1:])
return self.total
def make_seq_extend(self, sqllist):
if len(sqllist) == 1:
return sqllist
if len(sqllist) == 2:
ms = MakeSeq()
ms.make_seq([], sqllist[0], sqllist[1])
return seq.seqlist
if len(sqllist) > 2:
ms = MakeSeq()
ms.make_seq([], sqllist[0], sqllist[1])
return self.make_seqlist_extend(ms.seqlist, sqllist[2:])