How to avoid multiple nested for-loops when one nested for-loop has range up to the current iteration of the outer for-loop? For example, consider the following code: This program returns a triplet from a list arr such that arr[i] - arr[j] = arr[j] - arr[k] = d and i<j<k.

```d =3
arr = [1, 2, 4, 5, 7, 8, 10]
list1 = []

for biggest in range(0, len(arr)):
for bigger in range(0, biggest):
for big in range(0, bigger):
if abs(arr[big] - arr[bigger]) == d and abs(arr[bigger] - arr[biggest]) == d:
list1.append([arr[big], arr[bigger], arr[biggest]])
print(list1))```

Are there any other alternatives to using multiple nested loops?

Sep 14, 2018 in Python 15,092 views

## 2 answers to this question.

+1 vote

You can replace the three loops with:

```from itertools import combinations

for big, bigger, biggest in combinations(range(0, len(arr)), 3):```

You can replace all the code with:

```print([t for t in combinations(arr, 3)
if t - t == t - t == d])```

Hope this helps!!

Thanks!

• 58,100 points
+1 vote
Instead of multi-loop, If you can categorize all the threads into a loop, you can easily go with the less complexity with the in python, and for the nested loop, it is total standing with the loop in between the loop.
• 160 points

edited Sep 15, 2018 by Vardhan
Can you explain somewhat deeply using syntax bro please

Hii @Nikhil,

Example code:

```d =3
arr = [1, 2, 4, 5, 7, 8, 10]
list1 = []

for biggest in range(0, len(arr)):
for bigger in range(0, biggest):
for big in range(0, bigger):
if abs(arr[big] - arr[bigger]) == d and abs(arr[bigger] - arr[biggest]) == d:
list1.append([arr[big], arr[bigger], arr[biggest]])
print(list1))```

You can replace the three loops with:

```from itertools import combinations

for big, bigger, biggest in combinations(range(0, len(arr)), 3):```

You can replace all the code with:

```print([t for t in combinations(arr, 3)
if t - t == t - t == d])```

Hey, @Nikhil,

## Python: nested 'for' loops

Could use itertools: >>> for comb in itertools.combinations_with_replacement(range(9, -1, ...READ MORE

## How can I deal with python eggs for multiple platforms in one location?

Try virtualenv : http://pypi.python.org/pypi/virtualenv This helps you create isolated ...READ MORE

+1 vote

## instead of using two for loops in python

This example might help: for x, y in ((a,b) ...READ MORE

## how do i change string to a list?

suppose you have a string with a ...READ MORE

## how can i randomly select items from a list?

You can also use the random library's ...READ MORE

+1 vote

## how can i count the items in a list?

Syntax :            list. count(value) Code: colors = ['red', 'green', ...READ MORE