clustering in python without number of clusters or threshold
Why not code your algorithm to create a list of clusters ranging from size 1 to n (which could be defined in a config file so that you can avoid hard coding and just fix it once). 
Once that is done, compute the clusters of size 1 to n. Choose the value which gives you the smallest Mean Square Error. 
This would require some additional work by your machine to determine the optimal number of logical groups the data can be divided (bounded between 1 and n).
Is it possible to do clustering without providing any input apart from the data? The clustering method/algorithm should decide from the data on how many logical groups the data can be divided, even it doesn't require me to input the threshold eucledian distance on which the clusters are built, this also needs to be learned from the data.
Could you please suggest me what is closest solution for my problem?