Python Forum
producing numbers out of a list - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: producing numbers out of a list (/thread-35496.html)

Pages: 1 2


producing numbers out of a list - bouraque7878 - Nov-09-2021

Hi, i want to produce 4 digit numbers out of the numbers in the list (like 1111, 1112, 1113, 1114,....)
How can i do that?

list_ = [1, 2, 3, 4] 
range = (1111, 44445)



RE: producing numbers out of a list - Yoriz - Nov-09-2021

You need to explain more clearly what you are trying to do, and what have you tried to code this so far?


RE: producing numbers out of a list - Axel_Erfurt - Nov-09-2021

for x in range(1, 5):
    print(f"111{x}")
Output:
1111 1112 1113 1114



RE: producing numbers out of a list - bouraque7878 - Nov-09-2021

(Nov-09-2021, 08:09 PM)Yoriz Wrote: You need to explain more clearly what you are trying to do, and what have you tried to code this so far?

I want to add all possible 4 digit numbers that i can write by using [1, 2 ,3 ,4 ]
This is what i wrote so far but it's not the right way to do that.
list_1 = [1, 2, 3, 4]
list_2 = list()

for i in range(1111, 4445):
	i = str(i)
	for j in i: 
		if i.count(j) == 1: 
			list_2.append(i)
		else:	
			break
result = 0
	
for n in list_2:				
	n = int(n)
	result += n

print(result)



RE: producing numbers out of a list - Yoriz - Nov-09-2021

Have a look at
https://docs.python.org/3/library/itertools.html#itertools.combinations_with_replacement Wrote:itertools.combinations_with_replacement(iterable, r)
Return r length subsequences of elements from the input iterable allowing individual elements to be repeated more than once.

The combination tuples are emitted in lexicographic ordering according to the order of the input iterable. So, if the input iterable is sorted, the combination tuples will be produced in sorted order.

Elements are treated as unique based on their position, not on their value. So if the input elements are unique, the generated combinations will also be unique.



RE: producing numbers out of a list - bowlofred - Nov-09-2021

Possibly want product. Although shoving the results together to make numbers isn't always trivial.

from itertools import product

digits = "1457"

for number_str in product(digits, repeat=4):
    number = int("".join(number_str))
    print(number)
Output:
1111 1114 1115 1117 1141 1144 1145 1147 ...



RE: producing numbers out of a list - bouraque7878 - Nov-09-2021

(Nov-09-2021, 08:46 PM)bowlofred Wrote: Possibly want product. Although shoving the results together to make numbers isn't always trivial.

from itertools import product

digits = "1457"

for number_str in product(digits, repeat=4):
    number = int("".join(number_str))
    print(number)
Output:
1111 1114 1115 1117 1141 1144 1145 1147 ...

This is exactly what i was looking for. Thank you.


RE: producing numbers out of a list - bouraque7878 - Nov-12-2021

What about if i want to product numbers out of the same digits without repition ?
I mean i don't want to product numbers like 1111, 1114, 1115 etc. I want to use a digit only once in a number.


RE: producing numbers out of a list - bowlofred - Nov-12-2021

(Nov-12-2021, 04:14 PM)bouraque7878 Wrote: What about if i want to product numbers out of the same digits without repition ?
I mean i don't want to product numbers like 1111, 1114, 1115 etc. I want to use a digit only once in a number.

Then you want "permutations". You need to make sure you only give it each digit one time or it will repeat it.

from itertools import permutations

digits = "1457"

for number_str in permutations(digits, 4):
    number = int("".join(number_str))
    print(number)
Output:
1457 1475 1547 1574 1745 1754 4157 4175 ...



RE: producing numbers out of a list - bouraque7878 - Nov-12-2021

Cheers my friend :)