To **generate a list of numbers from 1 to N** in **Python**, use the **range()** function. The **range(**) is a built-in **Python** method that returns a sequence of numbers, starting from 0 by default, increments by 1 (by default), and stops before a provided number.

The** range()** function generates value from start number to end number − 1. If we convert those values to a list using **list()**, we get a list containing N values starting from 1.

**Python program to generate numbers from 1 to N**

```
n = int(input("Enter N: "))
l = list(range(1, n+1))
print(l)
```

**Output**

```
Enter N: 10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
```

You can see that the range() function generates values starting from 1 to N-1. So, I add 1 in the ending value and convert it into a list using list(). The list() method ensures that the final result is in a list form.

**Create a list of numbers from 1 to N using List Comprehension**

To **create** a **list** in **Python**, use the **list comprehension** approach. A **list comprehension** is a short-hand approach where you can **generate** **a list of numbers** from **1** **to** **N**. It is a concise and straightforward way to make a list.

**Syntax**

`list = [var for var in expression]`

**Code**

```
num = int(input("Enter N: "))
lc = [x for x in range(1, num+1)]
print(lc)
```

**Output**

```
Enter N: 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
```

In this code, the **range()** function generates values from 1 to N+1, and **list comprehension** creates a list out of that numbers.

**Using user-defined function**

To create a user-defined function in Python, use the **def **keyword. For example, we will create a function that accepts the “N” from the user and make a list that contains 1 to N numbers and return that list.

**Code**

```
def makeList(n) -> list:
list_data = []
for i in range(1, n+1):
list_data.append(i)
return(list_data)
n = int(input("Enter N: "))
lst = makeList(n)
print(lst)
```

**Output**

```
Enter N: 10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
```

We used a** list()** function inside the **makeList()** method to create an empty list in this code.

After that, we used a **for loop** and **range()** function, which generates a value from 1 to N, and inside the for loop, we appended value from 1 to N, one by one in the list, and in the end, we will get the list of numbers starting 1 to N.

**Creating a list using the numpy arange() function**

The numpy arange() is a library function that creates an array. Python does not have a built-in array data type, but we can create an array using a numpy library.

The **numpy** provides a function called **arange()** similar to Python’s **range()** function. I wrote a brief tutorial on the difference between range() vs np.arange().

The output of numpy operations will be an array, and we can **convert** an **array** to a **list** using a **list()** function.

```
import numpy as np
n = int(input("Enter N: "))
l = list(np.arange(1, n+1))
print(l)
```

**Output**

```
Enter N: 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
```

To use a Python module in your program, use the **“import”** keyword to import the module. For example, we imported the numpy module, created an array of 1 to N numbers using the **arange()** function, and converted that array into the list using the **list()** function.

**Conclusion**

Generating a list of numbers from 1 to N is the most common task in programming, and we saw four ways to achieve the goal. Python has a built-in function and a third-party library function that will help you create and modify a list and array. That’s it for this tutorial.

Krunal Lathiya is a Software Engineer with over eight years of experience. He has developed a strong foundation in computer science principles and a passion for problem-solving. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language. Krunal has experience with various programming languages and technologies, including PHP, Python, and JavaScript. He is comfortable working in front-end and back-end development.