Optimal clustering with optimal number of clusters as well as max and min cluster size constraints
Answer 1. There are various clustering algorithms depending on different requirements. You can employ $k$-means clustering method since it is fast, simple, and popular.
Answer 2. If you do not know the number of clusters, employ Elbow method. That is, first cluster the data for $k = 1$. Then cluster the data with $k = 2$, then $k = 3$ and so on. Initially, the cost of the clustering will decrease rapidly with increase in $k$. Once the $k$-means cost starts to appear constant with increase in $k$; that value of $k$ is the desired number of clusters.
Answer 3. When there are constraints on the size of clusters, the problem is (informally) known as the balanced clustering problem or capacitated clustering problem. The Wikipedia article does contain a few links of its implementation. This is a research paper for the balanced $k$-means problem. You might have to do some more research on this topic to find the perfect answer as per your requirement.

Note: The clustering problem that minimizes the $k$-means objective is $\mathsf{NP}$-hard. Therefore, you can expect to find an optimal solution to your problem in polynomial time.