Why some sets are countable and some are not countable? Say regular set are countable but how (0+1)* will be countable? It is an infinite string, then how it could be a countable set? How the set of all non-decreasing functions from N to N are countable? How the set of all finite partitions of N are uncountable?
As said the question completely belongs to mathematical sector , specifically to discrete mathematics but in my opinion information has no bounds , so does the question
coming to your question ,its indeed an application of discrete mathematics in theory of automata ,so here is your answer. loosely speaking that countability of has little to no relation with being a set is finite or infinite. first thing , if a set is countable then the only condition associated of being it countable is that the cardinality the set ( total number of elements in set) should be lower or equal to that of natural number of positive integers. To simplify it more we can assign a unique natural number to all the elements of the set (please bear that although you may argue that the the list will go to infinte but as said in that infinite list we will have one-to-one correspondence on natural number to that of the elements of set. loosely speaking the condition of being countable is more of a theoritical aspect )
Now if the set is finite then off course its cardinality (number of elements in set) will be less than that of natural numbers, because we can assign a unique natural number which are equal to number of element of the given . The definition of countable set for infinite set may get tricky,but it could be understood . i will take the example of language given by the regex ( 0+1) *. firstly the set of strings in language L =( 0+1) * are infinite which makes the set an infinite set. now apply the definition of being countable set we get that the language is indeed countable reason being we could have a unique list in which each element of the language is assign a unique natural number , however the list is infinitely long but this does not mean we have not assigned a unique natural number to elements of set. so yeah the language is counatble.
Now you may say that this could be done to all infinite set ,making all infinite set counatble, but actually this is not true. for your sake take one more example , this being the countability of set of real numbers. well you cannot assign a number to each real number reason being say you are numbering all the real number between 0 and 1, you will always find a real number which you have not numbered , say you have numbered like 1= 0.01,2 = 0.011, and so on but you missed 0.001 , now suppose you assigned a number to it also say, 3=0.001, well you lost many more numbers which being say ,0.0001,0.000001....and so on, so you will not able to list all the numbers hence the set is uncountable.
for just sake of clarity you can try a question like power set of language L and if you reach the conclusion that power set of language L= (0+1)* is uncountable then you have got what is countable and uncountable set.