As you already mentioned, this is straightforward to do in Python 2.6 or newer:

enumerate(range(2000, 2005), 1)

Python 2.5 and older do not support the start parameter so instead you could create two range objects and zip them:

r = xrange(2000, 2005)
r2 = xrange(1, len(r) + 1)
h = zip(r2, r)
print h

Result:

[(1, 2000), (2, 2001), (3, 2002), (4, 2003), (5, 2004)]

If you want to create a generator instead of a list then you can use izip instead.

Answer from Mark Byers on Stack Overflow
🌐
GeeksforGeeks
geeksforgeeks.org › python › enumerate-in-python
Enumerate() in Python - GeeksforGeeks
0 Python 1 Java 2 C++ Explanation: ... Parameters: iterable: sequence or collection to iterate over. start (optional): starting value of the index....
Published: May 8, 2026
Discussions

Yup, enumerate() has a start argument. I wish I'd known earlier!
You may already know this one, but the key field in list.sort and sorted is handy. A handful of people I have spoken with in the past were pleasantly surprised to discover that such a thing exists. More on reddit.com
🌐 r/learnpython
32
19
November 14, 2025
how to make enumerate start from 1 while using zip function ?
It's because you are using the same names for your list as the items in the list. So after testing the first approach, a and b now refer to ints, not the original lists. More on reddit.com
🌐 r/learnpython
9
0
June 21, 2022
🌐
Note.nkmk.me
note.nkmk.me › home › python
How to Start enumerate() at 1 in Python | note.nkmk.me
May 6, 2023 - ... By passing an iterable object to enumerate(), you can get index, element. for i, name in enumerate(l): print(i, name) # 0 Alice # 1 Bob # 2 Charlie ... As demonstrated in the example above, the index of enumerate() starts at 0 by default.
🌐
Real Python
realpython.com › python-enumerate
Python enumerate(): Simplify Loops That Need Counters – Real Python
October 21, 2025 - Python’s enumerate() function helps you with loops that require a counter by adding an index to each item in an iterable. This is particularly useful when you need both the index and value while iterating, such as listing items with their ...
🌐
W3Schools
w3schools.com › python › ref_func_enumerate.asp
Python enumerate() Function
Magic Methods __str__ __repr__ __eq__ __add__ __len__ __lt__ __contains__ __call__ Code Challenge Python Inheritance ... Matplotlib Intro Matplotlib Get Started Matplotlib Pyplot Matplotlib Plotting Matplotlib Markers Matplotlib Line Matplotlib Labels Matplotlib Grid Matplotlib Subplot Matplotlib Scatter Matplotlib Bars Matplotlib Histograms Matplotlib Pie Charts
🌐
Coursera
coursera.org › tutorials › how to enumerate in python: step by step
How to Enumerate in Python: Step by Step | Coursera
February 24, 2023 - Enumerate has two parameters: the iterable and the start value. You can use enumerate with any iterable in Python.
🌐
freeCodeCamp
freecodecamp.org › news › python-enumerate-what-is-the-enumerate-function-in-python
Python enumerate() – What is the Enumerate Function in Python?
June 8, 2022 - We'll talk about the syntax and ... syntax of the enumerate() function and its parameters: ... The enumerate() function takes in two parameters: iterable and start....
Find elsewhere
🌐
Mimo
mimo.org › glossary › python › enumerate-function
Python enumerate Function: Master Index-Based Iteration
The built-in enumerate() function ... takes a sequence like a list, tuple, or string, and returns an enumerate object. With the optional start parameter, you can set the counter's starting value....
🌐
GeeksforGeeks
geeksforgeeks.org › python › how-to-start-enumerate-from-1-in-python
How to start enumerate from 1 in Python ? - GeeksforGeeks
July 23, 2025 - Using enumerate(start=1) is most recommended methods to start index from 1. Set the start parameter to 1 is particularly useful when presenting lists in a more easy format or following specific indexing requirements.
🌐
Analytics Vidhya
analyticsvidhya.com › home › python enumerate(): simplify looping with counters
Python enumerate(): Simplify Looping With Counters | Analytics Vidhya
July 12, 2024 - Here we changed the default start value from 0 to 1. When designing user-friendly interfaces or reports, among other scenarios, this generates a list of fruits with numbers starting at 1. Enumerate () simplifies code that requires knowledge of an element’s position within a sequence, making your Python programming experience more efficient and intuitive by allowing you to access both the index and value.
🌐
Programiz
programiz.com › python-programming › methods › built-in › enumerate
Python enumerate()
If start is omitted, 0 is taken as start. The enumerate() function adds a counter to an iterable and returns it.
🌐
Medium
medium.com › @datasciencejourney100_83560 › enumerate-function-in-py-1289137117e9
Enumerate Function in Python. The enumerate() function in Python is a… | by Rina Mondal | Medium
August 30, 2025 - It simplifies the code compared to manually managing the index variable in a loop. Additionally, the start parameter allows you to specify the starting index for enumeration, which defaults to 0 if not provided.
🌐
Great Learning
mygreatlearning.com › blog › it/software development › python enumerate(): simplify looping with counters
Python enumerate(): Simplify Looping With Counters
January 6, 2025 - If the start parameter is not provided, the default value is 0. The Python enumerate function works by iterating through each element of an iterable object and returning a tuple of the current index and value of the element.
🌐
Enki
enki.com › post › what-does-enumerate-mean-in-python
Enki | Blog - What Does enumerate Mean in Python
The enumerate() function is a Python tool that allows you to loop through an iterable—like a list, tuple, or string—and have access to both the index and the element itself.
🌐
Guru99
guru99.com › home › python › python enumerate() function: loop, tuple & string
Enumerate() Function in Python: Loop, Tuple, String ...
July 10, 2026 - The firstindex value will start from 0. You can also specify the startindex by using the optional parameter startIndex in enumerate. Example In the code below, mylist is the list given to Enumerate function in Python.
🌐
Reddit
reddit.com › r/learnpython › how to make enumerate start from 1 while using zip function ?
r/learnpython on Reddit: how to make enumerate start from 1 while using zip function ?
June 21, 2022 -

Hi so i have these two lists

a = [1.2.3.4]

b= [5,6,7,8]

MY code:

for i,(a,b) in enumerate(zip(a,b)):

 print(i,a,b)

I get following output

(0, 1, 5)
(1, 2, 6)
(2, 3, 7)
(3, 4, 8)

But i want to start it from 1. i did the following but get the error

for i,(a,b) in enumerate(zip(a,b),start=1):
 print(i,a,b)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'int' object is not iterable

Please Help,Thanks

🌐
Python Tips
book.pythontips.com › en › latest › enumerate.html
13. Enumerate — Python Tips 0.1 documentation
And there is more! enumerate also accepts an optional argument that allows us to specify the starting index of the counter.
🌐
Python Basics
pythonbasics.org › home › python basics › enumerate explained (with examples)
Enumerate Explained (With Examples) - pythonbasics.org
Practice now: Test your Python skills with interactive challenges · The basic syntax is is enumerate(sequence, start=0)
🌐
Afternerd
afternerd.com › blog › python-enumerate
Python Enumerate Explained (With Examples) - Afternerd
August 20, 2019 - Python has a built-in function called enumerate that allows you to do just that.