Posts: 7
Threads: 2
Joined: Oct 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)
Posts: 1,979
Threads: 34
Joined: Sep 2016
You need to explain more clearly what you are trying to do, and what have you tried to code this so far?
Posts: 653
Threads: 13
Joined: Dec 2016
for x in range(1, 5):
print(f"111{x}") Output: 1111
1112
1113
1114
Posts: 7
Threads: 2
Joined: Oct 2021
Nov092021, 08:14 PM
(This post was last modified: Nov092021, 08:15 PM by bouraque7878.)
(Nov092021, 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)
Posts: 1,979
Threads: 34
Joined: Sep 2016
Have a look at
https://docs.python.org/3/library/iterto...eplacement 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.
Posts: 1,381
Threads: 3
Joined: Mar 2020
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
...
Posts: 7
Threads: 2
Joined: Oct 2021
(Nov092021, 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.
Posts: 7
Threads: 2
Joined: Oct 2021
Nov122021, 04:14 PM
(This post was last modified: Nov122021, 04:14 PM by bouraque7878.)
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.
Posts: 1,381
Threads: 3
Joined: Mar 2020
(Nov122021, 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
...
bouraque7878 likes this post
Posts: 7
Threads: 2
Joined: Oct 2021
