I am generating thetas, radius ranges, cos\_thetas and sin\_thetas using numpy.

I am still left with code that is highly inefficient, in terms of getting those combinations.

I have tried to go down the path of vectorization but reshaping makes things worse.

I currently have the following code:

```
candidates = []

delta_r = 1
r_min = 50
r_max = 100

num_thetas = 6

# R and Theta ranges
dtheta = int(360 / num_thetas)

## Thetas is bins created from 0 to 360 degree with increment of the dtheta
thetas = np.arange(0, 360, step=dtheta)

## Radius ranges from r_min to r_max 
rs = np.arange(r_min, r_max, step=delta_r)

cos_thetas = np.cos(np.deg2rad(thetas))
sin_thetas = np.sin(np.deg2rad(thetas))     
for r in rs:
    for t in range(num_thetas):
        candidates.append((r, int(r * cos_thetas[t]), int(r * sin_thetas[t])))

```