The code passed the initial tests, but failed due to execution timed out. How do I optimize the code (or algorithm) to increase speed?

the question was:

“Consider a sequence u where u is defined as follows:

The number u(0) = 1 is the first one in u.

For each x in u, then y = 2 * x + 1 and z = 3 * x + 1 must be in u too.

There are no other numbers in u.

Example:

u = (1, 3, 4, 7, 9, 10, 13, 15, 19, 21, 22, 27, …)

1 gives 3 and 4, then 3 gives 7 and 10, 4 gives 9 and 13, then 7 gives 15 and 22 and so on…

Task:

Given parameter n the function dbl_linear (or dblLinear…) returns the element u(n) of the ordered sequence u (ordered with < so there are no duplicates) .”

and my code:

”’

def dbl_linear(n):

```
u = (1)
if n > 0:
y, z = 2*1+1, 3*1+1
u.append(y), u.append(z)
for i in range(1,n):
y, z = u(i)*2+1, u(i)*3+1
u.append(y), u.append(z)
u = sorted(u)
u = sorted(list(set(u)))
return u(n)
```

”’