forked from Baitala/Python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGenerate_number.py
More file actions
51 lines (39 loc) · 1.16 KB
/
Generate_number.py
File metadata and controls
51 lines (39 loc) · 1.16 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
# def gen_bin(M, prefix=""):
# if M ==0:
# print(prefix)
# return
# for digin in "0", "1":
# gen_bin (M-1, prefix+digin)
# # gen_bin(5)
# def generate_number(N:int, M:int, prefix=None):
# ''''''
# prefix = prefix or []
# if M == 0:
# print(prefix)
# return
# for digit in range(N):
# prefix.append(digit)
# generate_number(N, M-1, prefix)
# prefix.pop()
# # generate_number(4, 3)
def find(number, A):
'''Searches for number in A and returns Trus, if it is present and False if it
is not present'''
for x in A:
if number == x:
return True
return False
def generate_permutations(N:int, M:int=-1, prefix=None):
'''The function generates N number is M positions, begins on prefix'''
M = N if M != -1 else M # by default N numbers in N positions
prefix = prefix or []
if M == 0:
print(*prefix, end=", ")
return
for number in range (1, N+1):
if find(number, prefix):
continue
prefix.append(number)
generate_permutations(N, M-1, prefix)
prefix.pop()
generate_permutations(3)